2014-11-21 214 views
-5
for (int i = 0; i < 150; i++) { 
     if (i % 13 == 0) { 
      System.out.println("#: " + i); 
     } 
    } 

我剛剛開始學習java昨天,我堅持for循環語句。 我感到困惑的部分如果語句裏面的for循環

if (i % 13 == 0) 

變量i初始化爲零INT I = 0如果按13分零結果爲0。有沒有剩餘。我試過計算器。 但是當我運行該程序。我得到這樣的結果,它一直增加13,如何?

#: 0 
#: 13 
#: 26 
#: 39 
#: 52 
#: 65 
#: 78 
#: 91 
#: 104 
#: 117 
#: 130 
#: 143 
+2

那麼,什麼是remaind呃當你將13除以13(輸出中的第二行)? – markspace 2014-11-21 17:07:26

+1

你的porgram將打印我每次我可以被13整除,你的問題到底是什麼? – luisluix 2014-11-21 17:08:48

+1

你想做什麼?你認爲'我%13'在做什麼? – Kent 2014-11-21 17:11:04

回答

1

你看到的結果是全部爲0和150(你在這條線中指定:for (int i = 0; i < 150; i++) {)之間的數字是倍數(沒有餘數)的13

1

第一環路加1到每個迭代的int i。然後,它會檢查是否有當除以13餘:

(i % 13 == 0) 

最後,將打印數量,如果它不具有當除以13餘:

System.out.println("#: " + i); 

所以結果基本上是所有在0和150之間的13的倍數的數字。

2

你看到的是正確的;它似乎每次要增加13因爲你的if聲明實際上是說,用簡單的英語:

顯示我的,只要13次將我勻(不留餘數)值

因此,我們確實,每個你看到均勻劃分的人數,不留餘數:

#: 0 // 0/13 = 0, no remainder 
#: 13 // 13/13 = 1, no remainder 
#: 26 // 26/13 = 2, no remainder 

等等...