2015-04-20 140 views
0

請一步解釋如果可能的話爲什麼此代碼顯示輸出17而不是16?

package array; 

public class array3 { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     int result = 0; 
     for (int i = 0; i < 5; i++) { 
      if (i == 3) { 
       result += 10; 
      } else { 
       result += i; 
      } 
     } 
     System.out.print(result);  
    } 
} 
+9

你真的需要轉向堆棧溢出嗎?所以有人建議你在你的IF塊中添加print語句來判斷髮生了什麼? – GhostCat

+3

而不是要求美國一步一步地向你展示爲什麼輸出是17而不是16,你應該告訴我們爲什麼你忽略16(一步一步;)) – Peanut

+1

如果你使用IDE,你還應該檢查調試模式和使用的斷點.. – Loci

回答

2

i循環從0到4

+--------+-------------+ 
| i | result | 
+--------+-------------+ 
| 0 | 0  | 
| 1 | 0 + 1 = 1 | 
| 2 | 1 + 2 = 3 | 
| 3 | 3 + 10 = 13 | 
| 4 | 13 + 4 = 17 | 
+--------+-------------+ 

步驟這就是你得到17

+0

哦,我沒有做我= 4步....感謝很多隊友 – DaX

+0

@DaX不用謝!它發生在我們所有人:) – alainlompo

+2

@DaX那麼你是如何到達16?我想你去了我的兩個分支如果我== 3。 – halex

0

你的代碼的增量(增加)的「我的價值'您的當前iterration索引變量(類型整數)/結果'變量(也,類型整數)。只有當我== 3,然後結果=結果+10,否則結果=結果+我。希望澄清。

相關問題