っ綿綿舊情 发表于 2018-12-3 12:54:31

乘法表关于 for语句嵌套执行顺序问题求助

#include<stdio.h>
int main()
{

int a,b,c;
for(a=1;a<=9;a++)
        {
                for(b=1;b<=a;b++)
                {
               
                c = a*b;
                printf("%d*%d=%-3d",a,b,c);
               
                }
                printf("\n");
        }
       
        getchar();
        return 0;
}

上面是for语句循环课程里提到的用for语句嵌套编写的乘法表

小白想了解。for语句的执行顺序。每一步怎么执行的。执行后的数据。

比如
程序开始
1.执行 a = 1 ;再判断 a<=9条件成立执行for语句2
2.执行 b = 1,在判断 b<=a条件成立执行输入语句
3.输出1*1=1   

那么循环
从内到外是怎么执行的呢?









求解惑··搅了很久了。细节各种拆分 越拆越懵逼,拆的现在不知道怎么拆了。反正就是跟执行结果对不上!{:5_96:}



水柔炎 发表于 2018-12-3 13:41:51

当b大于a的时候跳出内循环,a加一,再进内循环,再执行,直到外循环结束

っ綿綿舊情 发表于 2018-12-3 15:37:27

水柔炎 发表于 2018-12-3 13:41
当b大于a的时候跳出内循环,a加一,再进内循环,再执行,直到外循环结束

a+1进入内循环之后   b是不是也要加1啊?这样 执行结果 是不是
1*1=1
2*2=4
3*3=9
···
9*9=81

Mountain_gs 发表于 2018-12-3 17:18:47

っ綿綿舊情 发表于 2018-12-3 15:37
a+1进入内循环之后   b是不是也要加1啊?这样 执行结果 是不是
1*1=1
2*2=4


假设1*1执行完了。
那么跳出内层循环,a+1 =2;
进入内层循环,先执行b=1;在进行判断b<=a.满足条件执行循环体,最后执行b++.

っ綿綿舊情 发表于 2018-12-3 17:30:48

Mountain_gs 发表于 2018-12-3 17:18
假设1*1执行完了。
那么跳出内层循环,a+1 =2;
进入内层循环,先执行b=1;在进行判断b

{:5_109:}多谢指导!总算明白了···{:5_109:}智商不太够用··给自己绕懵了!

水柔炎 发表于 2018-12-3 21:47:08

っ綿綿舊情 发表于 2018-12-3 15:37
a+1进入内循环之后   b是不是也要加1啊?这样 执行结果 是不是
1*1=1
2*2=4


弄明白了吧

余生愿你常欢笑 发表于 2018-12-4 15:56:12

好吧

鱼C_Newbie 发表于 2018-12-4 20:11:13

我想要鱼B给我点!!!

鱼C_Newbie 发表于 2018-12-4 20:11:49

能不能给我点我要下载一个东西呢,大哥赏50个!
页: [1]
查看完整版本: 乘法表关于 for语句嵌套执行顺序问题求助