运算符<(小于)做什么?
另外,你能解释一下为什么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
运算符<(小于)做什么?
另外,你能解释一下为什么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
代码检查是否i
小于 5,然后递增i
。比较的结果存储在j
.
制作这样的循环是一种相当晦涩的方法。不太可读。
当您的循环执行 i++ 时,它实际上是在增加 i 的值。条件 j= i++ < 5 将检查返回值 '1' 或 '0' 所以当相应地你的输出打印语句 printf ("%d%d\n", i,j) 将打印
我=2;j=2<5 -> 返回 1 所以打印 (2,1) i=3; j=3<5 -> 返回 1 所以打印 (3,1)
依此类推,直到条件变为假,您的输出最终为 j=return '0' for i=6
这会给你 ans (6,0)
1
如果i
小于 5 则返回,否则返回0
。请注意,在下一次循环迭代之前,增量不会影响比较。