我正在尝试为Java中的作业创建一个程序,并正在寻找正确的方向。我目前正在网上上课,所以向老师寻求帮助对我来说不是一个选择。
我正在尝试创建一个简单的java程序,允许用户输入他们的名字和姓氏,以及他们要求的座位号。如果座位被占用,程序应该找到最近的座位。到目前为止,我已成功获得用户的所有输入(尽管是以迂回的方式)并创建和打印数组。
问题
我可以在数组中存储boolean
个值吗?我只是想存储假,如果座位被采取然后有和if else语句测试为真或假,并存储假如果返回的值是真(非常令人困惑,但这是我的思路)有一个更简单的方法走吧?另外,我如何使用该布尔值存储人名和姓?我是否必须创建一个单独的数组?到目前为止,我已经附加了我的代码,成功获取用户信息并打印出一个数组。
//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();
}
}
答案 0 :(得分:0)
正如你所说,为了推动正确的方向,我看到了两个快速的选择:
一个是添加Map。这将允许您存储一组键值对,您可以使用它们来表示座位,以及是否将其占用。
另一种选择是创建一个Seat
类,它有一个seatName字段以及是否采用它,你可以创建一个这些座位对象的数组。
如果你不知道从哪里开始实施其中任何一个,我会帮助你,但我挑战你至少尝试先实现其中一个。
修改强>
或者,更简单地说,您可以创建一个包含字符串的二维数组,如下所示:
String[][] seats = new int[numberofseats][2];
seats[0][0] = "Seat Number 1";
seats[0][1] = "true";
你可以强制第二个维度只保持值true或false,然后像这样检查它们:
if(seats[0][1].equals("true")) // Then seat number 1 is taken
就错误处理而言,这可能不是最佳解决方案,但这是可能的。
编辑2 如果您要创建座位类,我会将其设置为:
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();