for代码!

huangyingjie123 2012-02-09 10:11:32
#include<stdio.h>
void main(){
int x,y;
for(x=1;x<3;x++)
{
for(y=1;y<3;y++)
printf("%2d",x*y);
printf("\n");
}
getchar();
}


请大家告诉我下 这段代码怎样的执行顺序 怎么得出的运行结果? 谢了!!!!
...全文
205 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2012-02-10
  • 打赏
  • 举报
回复
for(x=1;x<3;x++)
{
for(y=1;y<3;y++)
{
printf("%2d",x*y);
}
printf("\n");
}
双层循环,循环顺序如上括号标识。外层执行一次,内层执行2次
Binzo 2012-02-10
  • 打赏
  • 举报
回复
#include<stdio.h>
void main(){
int x,y;
for(x=1;x<3;x++)
{
for(y=1;y<3;y++){//
printf("%2d",x*y);
}//
printf("\n");
}
getchar();
}
赵4老师 2012-02-10
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
DyanWang 2012-02-10
  • 打赏
  • 举报
回复
执行结果是:
1 2
2 4

for(表达式1;表达式2;表达式3)
{
循环体;
}
for循环执行顺序:先执行表达式1,在判断表达式2,若为假,则退出,若为真,则执行循环体,然后执行表达式3,再判断表达式2,若为假,则退出,若为真,则执行循环体,再执行表达式3,再判断表达式2,一次类推,直到表达式2为假,退出循环。

该题为内外两层循环:执行顺序为外层x=1时,判断x<3成立,进入循环体,而这个循环体又是一个循环,执行内层循环,直到退出内层循环,再执行x++,此时x=2,判断x<3依然成立,在执行内层循环,又会输出一次没知识因为x的值已经改变,因此结果不一样,执行完毕后,在进行x++,此时x=3,x<3不成立,退出外层循环,即退出整个循环体。
luckyjungle 2012-02-10
  • 打赏
  • 举报
回复
对啊,for循环在不加大括号的情况下,只执行紧跟的第一行代码。
面包大师 2012-02-10
  • 打赏
  • 举报
回复
昨天晚上很早就睡了。。。内循环每次都给y赋初值为1,判断y<3成立循环一次,然后,每次y++,都判断y<3成立则循环一次,否则跳出。。。。多做几次练习就熟悉了
pirates_fish 2012-02-10
  • 打赏
  • 举报
回复
无语了
「已注销」 2012-02-10
  • 打赏
  • 举报
回复
不知道听谁说:如果不知道你写的程序哪里出错了,就要多写几个输出的语句来检查


新手路过
ttaony 2012-02-10
  • 打赏
  • 举报
回复
我编好的格式不知为啥到这里乱了,我再试试
【1】 x=1, 1<3, 成立 ,(转入执行内循环)1> y=1, 1<3, 成立,x(1)*y(1)=1, y=y+1=2
………………………………………………………2> y=2, 2<3, 成立,x(1)*y(2)=2, y=y+1=3
………………………………………………………3> y=3, 3<3, 不成立,终止内层for循环 x=x+1=2
【2】 x=2, 2<3, 成立, (转入执行内循环)1> y=1, 1<3, 成立, x(2)*y(1)=2, y=y+1=2
………………………………………………………2> y=2, 2<3, 成立,x(2)*y(2)=4, y=y+1=3
………………………………………………………3> y=3, 3<3, 不成立,终止内层for循环 x=x+1=3
【3】 x=3, 3<3, 不成立 终止外层for循环
ttaony 2012-02-10
  • 打赏
  • 举报
回复
可以代入数写写:
1) x=1, 1<3, 成立 ,(转入执行内循环)1> y=1, 1<3, 成立,x(1)*y(1)=1, y=y+1=2
2> y=2, 2<3, 成立,x(1)*y(2)=2, y=y+1=3
3> y=3, 3<3, 不成立,终止内层for循环 x=x+1=2
2) x=2, 2<3, 成立, (转入执行内循环)1> y=1, 1<3, 成立, x(2)*y(1)=2, y=y+1=2
2> y=2, 2<3, 成立,x(2)*y(2)=4, y=y+1=3
3> y=3, 3<3, 不成立,终止内层for循环 x=x+1=3
3) x=3, 3<3, 不成立 终止外层for循环
我也是新手,共同学习……
sunfen0307 2012-02-09
  • 打赏
  • 举报
回复
从内到外
f27ny105t512 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huangyingjie123 的回复:]
(想上个csdn,很难) 这位大哥 你好啊..
为什么 for内循环要循环2次
[/Quote]

因为y=1 执行条件是y<3

第一次 y=1执行代码 然后y++
第二次 y=2执行代码 然后y++
第三次 y=3 不符合条件 跳出

是不是2次……
huangyingjie123 2012-02-09
  • 打赏
  • 举报
回复
(想上个csdn,很难) 这位大哥 你好啊..
为什么 for内循环要循环2次
SoftLy 2012-02-09
  • 打赏
  • 举报
回复
x=1,y=1 print 1
x=1,y=2 print 2
x=2,y=1 print 2
x=2,y=2 print 4
AnYidan 2012-02-09
  • 打赏
  • 举报
回复
随便一本语法书都有
ProgrammingRing 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 czh3642210 的回复:]

for外循环 第一次x=1
for内循环 第一次y=1
输出 x*y=1
第二次 y=2
输出 x*y=2
输出回车换行
for外循环 第二次 x=2
for内循环 第一次y=1
输出 x*y=2
第二次 y=2
输出 x*y=4
[/Quote]
++
面包大师 2012-02-09
  • 打赏
  • 举报
回复
for外循环 第一次x=1
for内循环 第一次y=1
输出 x*y=1
第二次 y=2
输出 x*y=2
输出回车换行
for外循环 第二次 x=2
for内循环 第一次y=1
输出 x*y=2
第二次 y=2
输出 x*y=4

70,037

社区成员

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

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