2014-11-21 208 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 

等等...