解释这段 代码 撒

hzc543806053 2011-06-14 11:34:07
#include <stdio.h>
main()
{
int i,j;
for(i=0;i<5;i++)
{
for (j=1;j<10;j++)
if(j==5)
break; //这个break是不是跳出整个循环,还是只跳出里面的那个循环??

if (i<2)
continue; // 如果执行到 continue 是不是里面的循环 重新开始循环?
if (i>2)
break;

printf(“%d,”,j);
}
printf(“%d\n”,i);
}


这道题怎么理解啊(思路)!并求出 j 和i ;
...全文
149 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
5t4rk 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhangyuehua123 的回复:]
break和continue都只是针对当前层循环。
break---break当前层余下的循环;
continue---continue当前层余下的循环;
[/Quote]
++
楼主你自己好好跟踪一下
就会明白的,好好
zhangyuehua123 2011-06-16
  • 打赏
  • 举报
回复
break和continue都只是针对当前层循环。
break---break当前层余下的循环;
continue---continue当前层余下的循环;

#include <stdio.h>
main()
{
int i,j;
for(i=0;i<5;i++)
{
for (j=1;j<10;j++)
if(j==5)
break; //break不是跳出整个循环,是只跳出里面的那个for循环

if (i<2)
continue; // 跳过下面的if和printf语句,执行下一次循环(最外面的for循环)
if (i>2)
break; //跳出最外层的for循环

printf(“%d,”,j);
}
printf(“%d\n”,i);
}

yilin54 2011-06-16
  • 打赏
  • 举报
回复
break和continue都是针对最近与它匹配的那一层循环

hzc543806053 2011-06-16
  • 打赏
  • 举报
回复
打好基础
lnn1123 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhao4zhong1 的回复:]

单步调试和设断点调试是程序员必须掌握的技能之一。

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
[/Quote]

哈哈,新亏以前用ollydbg 调试
赵4老师 2011-06-16
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
lanqiucoco 2011-06-16
  • 打赏
  • 举报
回复
学习啦!
snowman_1984 2011-06-16
  • 打赏
  • 举报
回复
。。。这种问题。。。
bo_boface 2011-06-16
  • 打赏
  • 举报
回复
#include <stdio.h>
main()
{
int i,j;
for(i=0;i<5;i++)
{
for (j=1;j<10;j++)
if(j==5)
break; //这个break不是跳出整个循环,是只跳出里面的那个循环,也就是该语句所处循环

if (i<2)
continue; // continue 是里面的循环重新开始循环,同样是其所在循环
if (i>2)
break;

printf(“%d,”,j);
}
printf(“%d\n”,i);
}
至于值应该是I=3,j=5

f_x_p0324 2011-06-16
  • 打赏
  • 举报
回复
输出5 3
AnYidan 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 luciferisnotsatan 的回复:]
引用 5 楼 q191201771 的回复:

break和continue都是针对最近与它匹配的那一层循环

建议你学习一下调试

++

单步跟踪下就知道怎么运行的了
[/Quote]

知识不欺勤人
luciferisnotsatan 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q191201771 的回复:]

break和continue都是针对最近与它匹配的那一层循环

建议你学习一下调试
[/Quote]
++

单步跟踪下就知道怎么运行的了
某某9 2011-06-15
  • 打赏
  • 举报
回复
break和continue都是针对最近与它匹配的那一层循环

不能越界
就想叫yoko 2011-06-15
  • 打赏
  • 举报
回复
break和continue都是针对最近与它匹配的那一层循环

建议你学习一下调试
如此美丽的你 2011-06-14
  • 打赏
  • 举报
回复
#include <stdio.h>
main()
{
int i,j;
for(i=0;i<5;i++)
{
for (j=1;j<10;j++)
if(j==5)
break; //这个break不是跳出整个循环,是只跳出里面的那个循环

if (i<2)
continue; // 执行到 continue ,跳过下面的if和printf语句,执行下一次循环(最外面的)
if (i>2)
break;

printf(“%d,”,j);
}
printf(“%d\n”,i);
}
無_1024 2011-06-14
  • 打赏
  • 举报
回复
break只跳出当前所在的循环
也就和这个break挨着的for循环
continue是跳过后面的语句直接执行下一个循环 也就是相当于 i++没有后面的if(i>2)了
最后一个break是跳出最外面的for循环
hu7324829 2011-06-14
  • 打赏
  • 举报
回复
break 和 continue都是针对当前循环

#include <stdio.h>
main()
{
int i,j;
for(i=0;i<5;i++)
{
for (j=1;j<10;j++)
if(j==5)
break; //这个break是里面的这个循环

if (i<2)
continue; //continue继续外面的循环
if (i>2)
break;

printf(“%d,”,j);
}
printf(“%d\n”,i);
}
ryfdizuo 2011-06-14
  • 打赏
  • 举报
回复
break只是跳出最近的一层循环。。。
goto可以跳出任意层的循环。不过不建议使用。

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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