关于break跳出循环,想了很久的问题

kingofud2007 2008-03-08 05:08:42
请问break是跳出整个for循环还是内部的for循环
#include "stdio.h"
#include "math.h"
main()
{
int m,i,k;
for(m=101;m <200;m=m+2)
{
k=(int)sqrt(m);
for(i=2;i <=k;i++)
if(m%i==0) break;
if(i==k+1)
printf("%d is a prime number.\n",m);
}
}
我觉得这个是跳出了内部的for循环,因为如果跳出的整个循环,那麽当m=102时那就结束了循环;
#include <stdio.h>
main()
{
int i;
for(i=1;i<=10;i++)
{
printf("%d",i);
if(i==5)
{
break;
}
}
}
但是这个程序却是跳出了整个循环,如果还是按我上面的理解的话,输出应该是1234678910,但是电脑输出1234.
请高手们给我解释一下,谢谢
...全文
6345 92 打赏 收藏 转发到动态 举报
写回复
用AI写文章
92 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjxw 2012-01-29
  • 打赏
  • 举报
回复
break跳出循环之后就不再执行下面的语句。。也就是说只跳出一个循环之后,不再执行。。。
程序员小迷 2012-01-29
  • 打赏
  • 举报
回复
总是跳出最近的循环啊
kendygrate 2012-01-29
  • 打赏
  • 举报
回复
if不是循环语句,只是判断条件,所以还是跳出那个for循环
kendygrate 2012-01-29
  • 打赏
  • 举报
回复
没错啊,确实是跳出内部循环而已
bobui 2012-01-29
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 kindazrael 的回复:]

C/C++ code

for(;;)
{
for(;;)
{
break;//会跳出包含它的最内层的循环语句(for,while)和switch,而且只跳出一层
}

//跳转这儿来
}
[/Quote]

这个例子很形象
灼眼的超哥 2012-01-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kingofud2007 的回复:]

第二个if算不算是循环呢?
[/Quote]
为什么算是循环?书上说的?
灼眼的超哥 2012-01-29
  • 打赏
  • 举报
回复

#include "stdio.h"
#include "math.h"
main()
{
int m,i,k;
for(m=101;m <200;m=m+2)
{ /* 循环1 */
k=(int)sqrt(m);
for(i=2;i <=k;i++)
{/* 循环2 */
if(m%i==0) break;/* 跳出循环2 */
}
if(i==k+1)
{
printf("%d is a prime number.\n",m);
}
}
}



#include <stdio.h>
main()
{
int i;
for(i=1;i<=10;i++)
{
printf("%d",i);
if(i==5)
{/*如果i等于5,跳出循环 */
break;
}
}
}
灼眼的超哥 2012-01-29
  • 打赏
  • 举报
回复
[Quote=引用 75 楼 guizi1234 的回复:]

break跳出离他最近的那层循环,if不是循环
[/Quote]
嗯,LZ哪有那么纠结?break属于哪个循环就是跳出哪个循环。
wgd123pl 2012-01-29
  • 打赏
  • 举报
回复
break;只是结束包含它的最近的循环层?if 、if-else、 if-else if - else if、if-else if-else
、switch。可以叫条件选择语句,break;continue;goto;return;叫非条件语句;for;while;do-while;
叫循环语句;如果没有记错的话,好像是这样的,如有错请大家纠正;
欧阳春晖 2012-01-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 arong1234 的回复:]

晕倒,if当然不叫循环,break跳出的时循环,啥时候和if扯上了
[/Quote]
if适用于条件判断的。
mm11214014 2012-01-26
  • 打赏
  • 举报
回复
每日一帖,不忘csdn
zhujian888 2012-01-26
  • 打赏
  • 举报
回复
其实我发现楼上的所有回答都是正解,顶一下。
DOLLAR_Z 2012-01-26
  • 打赏
  • 举报
回复
内层。外层不影响。。。

其实。。。你自己编一遍不就知道了嘛。。。
帅哥哥 2012-01-25
  • 打赏
  • 举报
回复
好像都是内部循环喔!
帅哥哥 2012-01-25
  • 打赏
  • 举报
回复
break是跳出当前循环。
程序员小迷 2012-01-25
  • 打赏
  • 举报
回复
第一个是内部循环;
第二个也是内部循环;
wizard_tiger 2012-01-24
  • 打赏
  • 举报
回复
break;只是跳出当前循环
guizi1234 2012-01-24
  • 打赏
  • 举报
回复
break跳出离他最近的那层循环,if不是循环
乔克叔叔 2012-01-24
  • 打赏
  • 举报
回复
for(i=2;i <=k;i++)
if(m%i==0) break;

跳出的就是这一层循环!
JXLFZ 2012-01-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kingofud2007 的回复:]

第二个if算不算是循环呢?
[/Quote]
。。。。
加载更多回复(72)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧