2014-02-28 69 views
0
boolean check = false; 
    for(int i = 0; i == 16; i++){ 
     if(i == i) 
      { 
       System.out.println("true"); 
       check = true; 
      } 
     else{ 
       check = false; 
     } 
    } 
     return check; 
    } 

爲了不必發佈大量代碼,我改變了我的if語句,但是我的問題是,爲什麼它仍然將check作爲false返回,即使在第一個循環中if語句是正確的,它應該閱讀如果(0 == 0)這是真的爲什麼它不返回檢查爲真?爲什麼這個循環總是返回false?

只是注意到,如果我刪除循環,它的工作原理:/任何原因爲什麼?

謝謝!

回答

4

你的循環條件是錯誤的。考慮執行這個流程:如果

for (int i = 0; i == 16; ++i) 
  1. 初始化i0
  2. 檢查i == 16(哪個是假的)
  3. 退出循環

所以永遠不會執行循環體。

你應該寫for (int i = 0; i <= 16; ++i)

3

因爲你從來沒有在for循環進入,應該是:

for(int i = 0; i <= 16; i++){ 
0
for(int i = 0; i == 16; i++){ 

你告訴進入循環,只有當i=16其中i分配給0

0

這種條件很適合循環...直到結構,也有人說你從來沒有進入循環,使使用:

for(int i = 0; i == 16; i++) { ... } 

,或者如果你堅持了結構像環......直到或者做,而(條件!)(條件):

int i = 0; 
do{ 
    if(i == i) 
     { 
      System.out.println("true"); 
      check = true; 
     } 
    else{ 
      check = false; 
    } 
}while(++i != 16); 

是沒有(至少我是這麼認爲的),可讀,我認爲它不是convenien t適用於任何Java程序員。

0

我喜歡這個問題,我的第一個代碼是我在這個網站上看到的,清楚你的條件永遠不會運行,因爲我從來沒有滿足條件i == 16,所以循環永遠不會運行。 嘗試我< = 16 試試這個

for(int i = 0; i <= 16; i++){