运营商< (小于)做什么?
另外,你能解释为什么for-loop
结束了吗?
main()
{
int i = 1, j = 1 ;
for ( ; j ; printf ("%d%d\n", i,j))
{
j = i++ < 5 ;
}
return 0;
}
我的输出为
21
31
41
51
60
答案 0 :(得分:2)
代码检查i
是否小于5,然后递增i
。比较结果存储在j
。
制作这样的循环是一种非常模糊的方法。不太可读。
答案 1 :(得分:0)
如果1
小于5,则返回i
,否则返回0
。请注意,增量不会影响比较,直到下一次循环迭代。
答案 2 :(得分:0)
当你的循环执行时,i ++实际上是递增i的值。条件 j = i ++&lt; 5将检查返回值'1'或'0'所以当相应的输出打印语句printf(“%d%d \ n”,i,j)将打印
i = 2; j = 2&lt; 5&gt;返回1所以打印(2,1) I = 3; j = 3&lt; 5 - &gt;返回1所以打印(3,1)
依此类推,直到条件变为假,你的输出最终为j =对于i = 6,返回'0'
这会给你ans(6,0)