深入理解嵌套循环

/*
 循环本质是执行多少次,比如说循环1~n,本质上执行n次循环体
 */

#include <iostream>
using namespace std;

int main() {
    int n=3,i,j;
    // 例一:并列循环,循环变量可以相同
    for(i=1;i<=n;i++){
        cout<<i;
    }
    cout<<endl;
    for(i=1;i<=n;i++){
        cout<<i;
    }
    cout<<endl;
    /*
     输出:
     123
     123
     */
    
    // 例二:嵌套循环,内层循环变量不能使用外层循环变量,这样会导致修改外层循环变量的值,达不到期望的结果
    for(i=1;i<=n;i++){
        for(i=1;i<=n;i++){
            cout<<i;
        }
        cout<<endl;
    }
    cout<<endl;
    /*
     输出:
     123
     */
    
    // 例二修改:输出i的值,外内层要使用不同的循环变量,这里用了 i,j。
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            cout<<i;
        }
        cout<<endl;
    }
    cout<<endl;
    /*
     输出:
     111
     222
     333
     */
    
    // 例三:嵌套循环,输出j的值
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            cout<<j;
        }
        cout<<endl;
    }
    cout<<endl;
    /*
     输出:
     111
     222
     333
     */
    
    // 例四:嵌套循环,内层循环次与i有关
    for(i=1;i<=n;i++){
        for(j=1;j<=i;j++){ //每行只要循环i次
            cout<<j;
        }
        cout<<endl;
    }
    cout<<endl;
    /*
     输出:
     1
     12
     123
     */
    
    // 例五:嵌套循环,内层循环输出与i和j都有关系
    for(i=1;i<=n;i++){
        for(j=1;j<=i;j++){
            cout<<i*j;
        }
        cout<<endl;
    }
    cout<<endl;
    /*
     输出:
     1
     24
     369
     */
    
    return 0;
}