2015-03-18 52 views
0

我在使if語句正常工作時遇到了一些問題。情景是,如果用戶想要英國隊,應該輸入1,如果他們想要美國隊,則輸入2。一旦他們選擇了一個區域,就會出現一個小組列表,他們輸入小組的數量,該小組的信息應該打印出來,但由於某種原因,它只是保持循環,並要求進入一個團隊。我已經簡化了我的代碼,否則它會太大。Java - if語句不斷循環

ArrayList<STeam> teams = rCSV.readSTeams("sports-teams.csv"); 
Scanner UInput = new Scanner(System.in); 
System.out.println("Enter 1 for British teams or 2 for American teams"); 
int choice = UInput.nextInt(); 
for (STeams st1 : teams) { 

    if (choice == 1) { 
     System.out.println("Choose: 1. London FC"); 
     int choice2 = UInput.nextInt(); 
     { 
      if (choice2 == 1) { 
       if (st1.getName().equals("London FC")) { 
        System.out.println(st1); 
       } 
      } 
     } 
    } 
    else if (choice == 2) { 
     System.out.println("test"); 
    } 
} 

道歉,如果這是非常混亂。 我有一個單獨的類,爲體育隊讀取文件和一個單獨的類,我知道這些工作,因爲我已經做了類似的這樣的事情,但只使用1個if語句而不是另一個2.

+0

我已經添加了「for」的括號,但似乎仍然要求我輸入一個團隊號碼。 – Logic210 2015-03-18 21:58:25

+0

你可以發佈'STeam'類嗎? – watery 2015-03-18 22:08:04

回答

0

choice從未在for循環中更新。

你可能想要做的:

for (STeams st1 : teams) { 
    int choice = UInput.nextInt(); 
    if(choice == 1) { 
    // ... 
} 
0

您正在使用此for (STeams st1: teams)這可能是一個遺留代碼。由於它沒有括號,for會持續循環。


編輯:好吧,你可能想是這樣的:

ArrayList的britishTeams = rCSV.readSTeams( 「體育teams.csv」); 掃描儀UInput =新掃描儀(System.in);

System.out.println("Enter 1 for British teams or 2 for American teams"); 
    int choice = UInput.nextInt(); 

    if (choice == 1) 
    { 
     for(int option = 0; option<britishTeams.size; option++) 
      System.out.println("Option " + option + ": " + britishTeams.get(option).name);  
     int choice2 = UInput.nextInt(); 
     System.out.println("You chose: " + britishTeams.get(choice2).name); 
    } 

要添加的美國隊,不要複製/一遍複製粘貼此,使該團隊需要的列表,並選擇一個方法;-)

+0

關於你的更新的一個問題:你爲什麼要迭代整個團隊?你不想只選擇美國或英國?你的STeam課堂上有什麼? – 2015-03-18 21:59:32

+0

用戶選擇美國,然後選擇英國,然後選擇他們想要的團隊。例如,我爲美國隊輸入2,然後我爲一個名爲「湖人隊」的球隊輸入1。 – Logic210 2015-03-18 22:00:27

+0

好的,所以球隊陣容包括美國和英國球隊,你想過濾掉他們? – 2015-03-18 22:01:51

0

代碼嘿看起來你正在運行循環沒有任何條件。所以它會運行,直到你的團隊中有令牌。完成選擇後,您需要使用中斷。

+0

請在你的回答中顯示一些代碼 – Gilad 2015-03-18 22:09:37