[求助]关于break的用法
我今天在参考书上看到这样一道题,问下面的输出结果();
答案给的是
1
3
5
可是我怎么看怎么是死循环:break语句使跳出if循环,继续执行 printf("%d\n",i++); 语句;之后再返回到 for(i=1;i+1;i++),这样i+1永远是非零的,所以for循环一直进行。 可是当我上机操作的时候运行结果却和答案给的是一样的,我没想明白,谁能告诉我我的思路错在哪里了??
main()
{
int i;
for(i=1;i+1;i++)
{
if(i>4)
{
printf("%d\n",i);
break;
}
printf("%d\n",i++);
}
}
----------------解决方案--------------------------------------------------------
在if语句中有一个break,当i>4的时候将会被执行,那个时候就是循环结束的时候
----------------解决方案--------------------------------------------------------
i=1;
i+1==>i=2;
printf(i=1);
i++==>i=3;
printf(i=3);
i+1==>i=4;
4>4?==>0
break;
i++==>i=5;
printf(i=5);
不知道对不对!
----------------解决方案--------------------------------------------------------
晚了一步!
----------------解决方案--------------------------------------------------------
i=1;
i++,输出1;
i=2;
i+1=2;
i++;-->i=3;
i++,输出3;->i=4;
i+1;-->i=5;
输出i=5;
break跳出;
----------------解决方案--------------------------------------------------------
break跳出的不是if语句,而是离他最近的for语句
----------------解决方案--------------------------------------------------------
if语句有必要break么?
----------------解决方案--------------------------------------------------------
我今天又看了一下谭浩强的书,我知道了,break和contnue只是用在循环中中断循环的,if是选择而不是循环,所以在这个程序中break中断了离它最近for循环。谢谢大家了哦!!
----------------解决方案--------------------------------------------------------
是啊
你怎么看书都不仔细点呢
----------------解决方案--------------------------------------------------------
恩~
----------------解决方案--------------------------------------------------------