我需要一点帮助。我希望它通过数组并找到所有目的地与输入的目的地相同,但这只能打印出来1.任何建议? 谢谢。
for (int x = 0; x<40;x++){
String flight;
Scanner input = new Scanner (System.in);
System.out.println("Enter Flight destination to find: ") ;
flight = input.next();
if (plane[x].destination.equals(flight)){
System.out.println("Found destination! " + "\t" + "at array " + x);
System.out.println(plane[x].flightid + "\t" + plane[x].origin + "\t" + plane[x].destination);
break;
}
}
答案 0 :(得分:1)
break
语句中不需要if
。 break
退出循环,这就解释了为什么你只能看到一个航班。您还需要将输入移动到循环外部,否则您需要在平面循环的每次迭代中输入。
Scanner input = new Scanner (System.in);
System.out.println("Enter Flight destination to find: ") ;
String flight = input.next();
for (int x = 0; x<40;x++){
if (plane[x].destination.equals(flight)){
System.out.println("Found destination! " + "\t" + "at array " + x);
System.out.println(plane[x].flightid + "\t" + plane[x].origin + "\t" + plane[x].destination);
}
}
答案 1 :(得分:0)
找到第一个目的地后,您正在打破for
循环:
if (plane[x].destination.equals(flight)){
System.out.println("Found destination! " + "\t" + "at array " + x);
System.out.println(plane[x].flightid + "\t" + plane[x].origin + "\t" + plane[x].destination);
break;
}
所以循环的其余部分没有被执行。您需要删除此break;
声明。
if (plane[x].destination.equals(flight)){
System.out.println("Found destination! " + "\t" + "at array " + x);
System.out.println(plane[x].flightid + "\t" + plane[x].origin + "\t" + plane[x].destination);
//break;
}