什么是“<”在表达式中执行j = i ++< 5呢?

时间:2013-09-02 09:25:38

标签: c operator-keyword increment

运营商< (小于)做什么? 另外,你能解释为什么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

3 个答案:

答案 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)