HaibaraA1 发表于 2021-2-2 17:32:10

为什么给i赋值为0时输出结果是1,而给i其他值时为期望结果11

#include<stdio.h>
int main()
{
      int i=0;
      while(i++)
      {
                if(i>10)
                {
                        goto Z;
                }
         }
Z: printf("i=%d\n", i);         
      return 0;
}

qiuyouzhi 发表于 2021-2-2 17:38:47

当i为0时,注意while循环的条件是i++,
也就是说,它会先判断i,然后再++
i为0,所以会退出循环,但++操作还是会执行的
当i为别的值时,循环到了i = 11,这时候在内层的if语句判断,并退出循环
i=10的时候是不会退出循环的

HaibaraA1 发表于 2021-2-2 18:40:55

qiuyouzhi 发表于 2021-2-2 17:38
当i为0时,注意while循环的条件是i++,
也就是说,它会先判断i,然后再++
i为0,所以会退出循环,但++操 ...

为啥i为0就会退出循环呢?{:5_107:}

qiuyouzhi 发表于 2021-2-2 18:42:07

HaibaraA1 发表于 2021-2-2 18:40
为啥i为0就会退出循环呢?

基础知识呀
0为false,while循环时,只有条件为true才会继续循环

HaibaraA1 发表于 2021-2-3 15:19:31

qiuyouzhi 发表于 2021-2-2 18:42
基础知识呀
0为false,while循环时,只有条件为true才会继续循环

ok谢谢!{:5_102:}
页: [1]
查看完整版本: 为什么给i赋值为0时输出结果是1,而给i其他值时为期望结果11