for (scanf("%d",&m);m;m--)是什么意思

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 18:42:50

for (scanf("%d",&m);m;m--)是什么意思
for (scanf("%d",&m);m;m--)是什么意思

for (scanf("%d",&m);m;m--)是什么意思
这个就是for循环判断的本质 在for循环里面 条件表达式 (也就是两个分号中间的部分)值是0 就认为条件已经不满足了 就要退出循环.这里面有个误区就是大家老是认为条件表达式必须是个不等式 但是 这似乎没有知道 条件表达式的本质是什么
机器在运行这个for循环的时候 他认为for循环可以执行的条件就是:两个分号之间的值不是0 就可以执行 是0 for循环就终止
我们写不等式的时候如果为真 他的值就是1 不是真了 就是 0 此时就终止循环.所以本质 就是看值!此时用m (当然为了程序的可读性 写上m >0 最好了)我们就是取消了 直接深入本质判断结果 毕竟如果写成m>0 那么机器在这里还要运算一步 他要判断 m>0?1:0; 然后再根据 结果值 ( 1 或者0)再来判断 for循环是否运行)