此for
循环是否会停止?
for(int i=1; 1/i > 0; i++) {
}
如果是的话,何时以及为何?我被告知它停止了,但我没有理由这样做。
答案 0 :(得分:3)
是。
第一次迭代:i = 1,1 / 1 = 1> 0,所以它循环。
第二次迭代:i = 2,1 / 2 = 0!> 0(整数除法),所以它停止。
答案 1 :(得分:1)
答案 2 :(得分:0)
是的,for循环在一次迭代后停止。在第二次迭代中将1除以2将导致for循环停止,因为intergers不记录小数,意味着除以2将是0而不是.5。
答案 3 :(得分:0)
1/2
被评估为整数,并简单地切断小数点。因此1/2 = 0
。
如果其中一个数字是浮点数(例如1.0/2
或1/2.0
),则会返回预期的0.5
。
答案 4 :(得分:0)
在此代码中
for(int i=1; 1/i > 0; i++) {
//any code here
}
代码
为什么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,从而终止循环。