2013-10-30 57 views
0

我需要一點幫助。我希望它通過數組並找到與輸入的目的地相同的所有目的地,但這隻能找到打印出來的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

你想從整個列表中找到一個目的地嗎? –

回答

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; 
} 
+0

謝謝。這非常簡單。 – sumr

1

你不需要if語句內breakbreak退出循環,這就解釋了爲什麼你只能看到一個航班。您還需要將輸入移動到循環外部,否則您需要在平面循環的每次迭代中輸入。

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); 
    } 
} 
+0

謝謝。這非常簡單。 – sumr