2013-07-07 49 views
-2

我的問題是,當我運行代碼if語句運行,但然後繞過for循環。我是新手,這是第一篇文章。歡迎所有幫助。爲什麼在我的if語句中沒有運行for循環? Java

if (tMenuChoice == 1) 
     { 
      System.out.println("How many teams are there going to be?"); 
      int tNumberOfTeams = tKeyboard.nextInt(); 

      // This is where the code stops running. The for loop is not read but bypassed. 

      for (int i = 1; i == tNumberOfTeams;i++) 
      { 
       System.out.println("Team " + i + "'s name?"); 
       String tNameOfTeam = tKeyboard.nextLine(); 
       String [] tTeamArray = new String[i]; 
      } 
     } 

感謝

+3

請檢閱'for'循環的工作方式:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html。 –

+3

同意。你知道這是for循環是錯誤的,所以你應該研究教程或你的書的循環,你會馬上看到你的錯誤。 –

回答

3
for (int i = 1; i == tNumberOfTeams;i++) 

應該

for (int i = 0; i < tNumberOfTeams;i++) 

的問題是,它會得到在第一次運行的測試條件爲假,從來沒有這樣做迭代。此外,由於你正在寫到一個數組,你需要從0開始

+0

@arshajii OP正在使用一個數組。 – hexafraction

+0

代碼現在運行,但跳過用戶需要輸入團隊名稱的部分。如何讓它在再次開始運行之前停止並提示用戶? – user2540126

+0

@ user2540126什麼是tKeyboard?掃描儀?請閱讀Scanner。 – hexafraction

0

的問題是在條件語句的for循環: (INT I = 1;我== tNumberOfTeams;我++)

您首先將變量i初始化爲1 然後您有條件 - 只有當此條件評估爲true時纔會執行循環。條件是i == tNumberOfTeams。除非團隊數量等於1(這是當前存儲在i中的值),否則循環將不會執行。

你可能想要做的就是說我< = tNumberOfTeams,這樣只要該語句爲真,循環就會繼續運行。

1

將斷點就行了:

int tNumberOfTeams = tKeyboard.nextInt(); 

確保被分配到tNumberOfTeams值大於1,也一樣評議如上所述,對於循環不應該包含在繼續狀態== (第二參數)。如果這是有意的,我會建議另一個if語句或其他代碼塊。