注册 登录
编程论坛 C++教室

关于for循环的问题

后卿 发布于 2022-05-14 15:10, 2604 次点击
听老师讲课,for循环里的代码顺序执行是这样的
for(0;1;3){
    2
}
执行顺序是0123123123,那么for循环嵌套的顺序就是
for(0;1;3)
{
    2:for(a;b;d)
    {
        c
    }
}
合起来顺序就是01abcd3 1bcd3 1bcd3....
假设第一层for循环执行了10次,假设第二层for循环也只进行10次,但按照这个顺序逻辑,那第二层for循环也只执行了10次啊,没有100次啊
4 回复
#2
cwa99582022-05-14 17:04
10*10=100
你可以把代码运行一次就知道了
#3
后卿2022-05-14 17:19
#include<iostream>
换个实际点的问题吧,
#include "string"
using namespace std;
int main()
{
    for (int i=1;i<10;i++)
    {   
        for (int j=1;j<=i;j++)
        {
            cout<<i<<"*"<<j<<"="<<j*i<<"  ";
        }
        cout<<endl;
        
    }
    system("pause");
    return 0;
}
当执行完i=1后,j<=i,输出1*1,没错吧,j++这时候的值为2,下次i自增后值为2,进入下一层循环时,j的初始值又变成了1这是为啥呢,又是输出1*1,1*2,j的值不是明明自增为2了么,怎么又从1开始

[此贴子已经被作者于2022-5-14 17:39编辑过]

#4
rjsp2022-05-14 20:34
for(0;1;3)
{
    2:for(a;b;d)
    {
        c
    }
}
合起来顺序就是01abcd3 1bcd3 1bcd3....

合起来顺序就是 0 1(a bcd bcd bcd ……)3 1(a bcd bcd bcd ……)3 1(a bcd bcd bcd ……)3 ……
#5
后卿2022-05-14 21:00
回复 4楼 rjsp
版主还是很厉害啊哈哈哈
1