这是'对于'循环停止,为什么/为什么不呢? for(int i = 1; 1 / i> 0; i ++){}

时间:2016-09-27 05:23:28

标签: java

for循环是否会停止?

for(int i=1; 1/i > 0; i++) {

}

如果是的话,何时以及为何?我被告知它停止了,但我没有理由这样做。

6 个答案:

答案 0 :(得分:3)

是。
第一次迭代:i = 1,1 / 1 = 1> 0,所以它循环。
第二次迭代:i = 2,1 / 2 = 0!> 0(整数除法),所以它停止。

答案 1 :(得分:1)

  1. 第一次迭代:i = 1,1 / 1等于1,继续。
  2. 第二次迭代:i = 2,1 / 2等于0,因为它是整数除法,因此条件为假并停止。
  3. javadoc

    中记录了有关整数除法的详细信息

答案 2 :(得分:0)

是的,for循环在一次迭代后停止。在第二次迭代中将1除以2将导致for循环停止,因为intergers不记录小数,意味着除以2将是0而不是.5。

答案 3 :(得分:0)

1/2被评估为整数,并简单地切断小数点。因此1/2 = 0

如果其中一个数字是浮点数(例如1.0/21/2.0),则会返回预期的0.5

答案 4 :(得分:0)

在此代码中

for(int i=1; 1/i > 0; i++) {
//any code here
}

代码

  1. 将条件设置为大于0的数字
  2. 计数器从1开始(整数)
  3. 首先针对循环面颊条件运行1/1> 0 =>这段代码执行完毕。
  4. 首先将计数器增量运行1后
  5. 之后,for循环面颊条件1/2> 0 => false not not execute and for loop stop
  6. 为什么for循环在1/2中停止,因为1个整数和2个整数
    和整数/整数必须=整数1/2 = 0(0.5不是整数) 如果您使用此代码,则for循环执行许多次。 因为int / float = float 1 / 1.0 = 1/1 / 2.0 = 0.5 / 1 / 3.0 = 0.33333 / 1 / 4.0 = 0.25 ...等

    for(float i=1; 1/i > 0; i++) {
        //any code here
        }
    

答案 5 :(得分:-1)

这是我第一次发帖,我绝对是新手,所以如果我提供的信息不正确,请指教我:)。

我的理解是因为i和1都是行中的整数类型:

for(int i = 1; 1 / i> 0; i ++)

然后您的程序将自动执行整数除法/算术,从而导致模数或余数被删除。因此,在第二次迭代期间,0.5的余数将被丢弃,从而导致0,从而终止循环。