我正在尝试使用一维数组进行座位预留或分配。用户输入选择2个部分,无论是经济舱还是头等舱,但我不想走那么远,因为我还不了解算法。假设用户输入头等舱座位并从座位1中选择座位,那么用户输入必须保存在数组中。如果用户再次输入相同的座位,则必须打印出已经占用的座位。如果用户输入已占用的座位或输入相同的座位,我该如何打印出“已占用的座位”?
int arr[] = new int[10];
for(int i=0;i<arr.length;i++)
{
System.out.println ("(1)First Class \n(2)Economy Class");
int section = input.nextInt();
if(section == 1)
{
System.out.println ("Welcome to First Class");
System.out.println ("Choose Seat from 1-2");
arr[i] = input.nextInt();
if(arr[i] == 1)
{
arr[0]=1;
System.out.println ("Seat #1");
}
else if(arr[i] == 2)
{
arr[1]=2;
System.out.println ("Seat #2");
}
else if(arr[i] == arr[0] || arr[i]==arr[1])
{
System.out.println ("Seat already taken");
}
}
最佳答案
我似乎不了解您提供的代码与您要解决的问题之间的关系。
如果我对您的理解正确,那么您正在尝试查看数组是否已包含用户输入的元素。为此,您可以做这样的事情
int a[] = new int[10];
for(int i=0;i<10;i++){
boolean seatTaken = false;
int seat = input.nextInt();
for(int j=0;j<i;j++){
if(a[j]==seat){
seatTaken = true;
break;
}
}
if(seatTaken){
System.out.println("The Seat has already been taken");
i = i - 1;
}else{
a[i] = seat;
}
}
当然,可以通过使用具有恒定查找时间的HashSet来提高效率
关于java - 如果用户输入已经坐下的座位或输入相同的座位,我应该添加什么代码以打印出“已经坐下的座位”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57230883/