for循环中表达式是num!=6,为什么最后求出来的6的值呢

它的代码是这样的

int main(void)
 {int num = 0; 
 for (printf("Keep entering numbers!\n"); num != 6;)
  scanf("%d", &num);
   printf("That's the one I want!\n"); 
   return 0; 
   }

运行结果是这样的,不太明白啊!想问下是怎么理解的呢?

 

你没有搞清楚for循环的基本规则。

for(初始化;判断表达式;改变循环条件)

在for的()中的第二段 判断表达式  表达式结果为true地会继续循环。当表达式结果为false时会终止循环

你的例子中的判断表达式为 num != 6所以当num不等于6时表达式为true继续循环,num等于6时表达式为false终止循环。

希望能对你有所帮助

执行顺序啊,大哥,你按照顺序一步一步执行下去不就好了,输入6,然后再进行循环条件的判断然后才会结束循环的,按顺序把执行过程展开一步步写下来就能很清楚的看到了

1. for循环的代码最好用{}括起来。

2. 你的for循环含义就是当num不等于6时,循环读取整数放到num变量中。即读到6后结束循环。

因为你是先判断,再获取数字(scanf), 也就是你输入5的时候,先判断 num !=6,然后才读入6。这时,num已经变成6了,在下一循环中,会先打印出来,再判断 num != 6 跳出了循环。