Java 航空公司计划
我正在尝试用Java为作业创建一个程序,并且正在寻找一个正确的方向。我目前正在网上上课,所以向老师寻求帮助不是我的选择 我试图创建一个简单的java程序,允许用户输入他们的名字和姓氏,以及他们请求的座位号。如果座位有人,程序应该找到最近的可用座位。到目前为止,我已经成功地从用户那里获得了所有的输入,尽管是以一种迂回的方式,并创建和打印了一个数组 问题: 我可以在数组中存储布尔值吗?如果有人坐了,我只想存储false,然后使用and if else语句测试true或false,如果返回的值为true,则存储false非常混乱,但这是我的思路有更简单的方法吗?还有,我如何使用该布尔值存储人员的名字和姓氏?我必须创建一个单独的数组吗?到目前为止,我已经附加了成功获取用户信息并打印出数组的代码Java 航空公司计划,java,arrays,Java,Arrays,我正在尝试用Java为作业创建一个程序,并且正在寻找一个正确的方向。我目前正在网上上课,所以向老师寻求帮助不是我的选择 我试图创建一个简单的java程序,允许用户输入他们的名字和姓氏,以及他们请求的座位号。如果座位有人,程序应该找到最近的可用座位。到目前为止,我已经成功地从用户那里获得了所有的输入,尽管是以一种迂回的方式,并创建和打印了一个数组 问题: 我可以在数组中存储布尔值吗?如果有人坐了,我只想存储false,然后使用and if else语句测试true或false,如果返回的值为tru
//Import scanner and arrays
package airlinereservations;
import java.util.Scanner;
import java.util.Arrays;
public class AirlineReservations {
public static void main(String[] args) {
//Print the header
System.out.println("___________________________________");
System.out.println("|WELCOME TO FLY BY NIGHT AIRLINES!|");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
// Promt user for first and last name
System.out.println("Please enter your first name:");
Scanner scan= new Scanner(System.in);
String first = scan.nextLine();
System.out.println("Please enter your last name:");
String last = scan.nextLine();
//Greet the user
System.out.println("Hello! " + first + " "+ last);
//Get the requested seat
System.out.println("Please enter your requested seat row number 1-9:");
int rowz = scan.nextInt();
System.out.println("Please enter your requested seat column number 1-4:");
int colz = scan.nextInt();
//Tell the user if the seat is already taken
if(int rowz == rowz, System.out.println("This seat is already taken!"));
else(return true);
//Print out the array
int[][] Seating= new int[9][4];
for(int row=0; row<Seating.length; ++row){
for(int col=0; col<Seating[row].length; ++col){
Seating[row][col] = (row + col) % 9 + 1;
for(int ro=0; ro<Seating.length; ++ro);
}
System.out.println();
for(int col=0; col<Seating [row].length; ++col)
System.out.print(Seating[row][col]);
}
System.out.println();
}
}
正如你所说,要想朝正确的方向推进,我需要考虑两个快速的选择: 一种是添加一个。这将允许您存储一组键值对,您可以使用这些键值对来表示座位,以及它们是否被占用 另一个选项是创建一个Seat类,该类有一个seatName字段以及是否使用该字段,您可以创建这些Seat对象的数组 如果您不知道从哪里开始实施这两项,我将帮助您,但我要求您至少先尝试实施其中一项 编辑 或者,更简单地说,您可以创建一个包含字符串的二维数组,如下所示:
String[][] seats = new int[numberofseats][2];
seats[0][0] = "Seat Number 1";
seats[0][1] = "true";
if(seats[0][1].equals("true")) // Then seat number 1 is taken
public class Seat{
private String seatName;
private boolean isTaken;
public Seat(String s, boolean t){
this.seatName = s;
this.isTaken = t;
}
public boolean isSeatTaken(){
return this.isTaken;
}
}
ArrayList<Seat> myArrayList = new ArrayList<Seat>(); // Or a regular array if you prefer
// Add elements
// Below checks if first seat in list is taken
boolean firstSeatTaken = myArrayList.get(0).isSeatTaken();
您可以强制第二个维度只保留值true或false,然后像这样检查它们:
String[][] seats = new int[numberofseats][2];
seats[0][0] = "Seat Number 1";
seats[0][1] = "true";
if(seats[0][1].equals("true")) // Then seat number 1 is taken
public class Seat{
private String seatName;
private boolean isTaken;
public Seat(String s, boolean t){
this.seatName = s;
this.isTaken = t;
}
public boolean isSeatTaken(){
return this.isTaken;
}
}
ArrayList<Seat> myArrayList = new ArrayList<Seat>(); // Or a regular array if you prefer
// Add elements
// Below checks if first seat in list is taken
boolean firstSeatTaken = myArrayList.get(0).isSeatTaken();
就错误处理而言,这可能不是最好的解决方案,但这是可能的
编辑2如果您要创建一个seat类,我会这样设置它:
String[][] seats = new int[numberofseats][2];
seats[0][0] = "Seat Number 1";
seats[0][1] = "true";
if(seats[0][1].equals("true")) // Then seat number 1 is taken
public class Seat{
private String seatName;
private boolean isTaken;
public Seat(String s, boolean t){
this.seatName = s;
this.isTaken = t;
}
public boolean isSeatTaken(){
return this.isTaken;
}
}
ArrayList<Seat> myArrayList = new ArrayList<Seat>(); // Or a regular array if you prefer
// Add elements
// Below checks if first seat in list is taken
boolean firstSeatTaken = myArrayList.get(0).isSeatTaken();
然后,以后你可以这样做:
String[][] seats = new int[numberofseats][2];
seats[0][0] = "Seat Number 1";
seats[0][1] = "true";
if(seats[0][1].equals("true")) // Then seat number 1 is taken
public class Seat{
private String seatName;
private boolean isTaken;
public Seat(String s, boolean t){
this.seatName = s;
this.isTaken = t;
}
public boolean isSeatTaken(){
return this.isTaken;
}
}
ArrayList<Seat> myArrayList = new ArrayList<Seat>(); // Or a regular array if you prefer
// Add elements
// Below checks if first seat in list is taken
boolean firstSeatTaken = myArrayList.get(0).isSeatTaken();
您可以在一个数组中存储几乎任何您想要的内容。boolean[][]myArray=new boolean[5][6]是booleans@RichardTingle例如,如果我想在第4列第2行中存储false,我将如何在特定位置存储布尔值?@MK4语法如下:myArray[1][3]=false。首先列出行,然后列出列,当然,索引从0开始。因此对于seat类,我将创建一个类,该类以seat为参数并返回布尔值?那会像公共座位一样//请求的座位返回布尔值这是怎么回事。添加到这些变量中,是它显示的文本还是?嗯,当你开始时,ArrayList是空的,所以你需要以某种方式输入座位。这是一些ArrayList。非常感谢!这个列表非常有用,我决定只打印一个包含1-36个座位位置的数组,然后让用户选择一个数字,然后检查列表是否正确。好的,我还有几个问题,首先是有没有比单独添加每个数字更容易填充此列表的方法,其次是,如何使用用户输入的号码更改座位号并使其返回false?它不允许我做'list.setrequestedSeat,false;'