问答详情
源自:4-14 Java 循环语句之多重循环

初始化变量在for之前赋值为什么得到的结果不一样

int i=1;

int j=1;

for(;i<=3;i++){

for(;j<=8;j++){

System.out.print("*");

}

System.out.println();

}


提问者:时光先生丶 2017-03-07 11:54

个回答

  • 阿米巴丶
    2017-03-07 13:13:45
    已采纳

    int i=1;
    int j=1;
    for(;i<=3;i++){
        j=1
        for(;j<=8;j++){
            System.out.print("*");
        }
        System.out.println();
    }
    
    每次j循环结束后,给j重新赋值


  • FF000
    2017-03-07 13:32:15

    验证了一下,你这是一行“*”与三行“*”的区别。原因我想是因为看你FOR循环写在哪个成员变量后头,你现在是写在“j”后头,那么你的内外循环就只执行一次,而如果你把“i、j”都写在各自的循环里面,那么就是一个长方形。因为当你都写外头时,程序按顺序执行一次完成后,不可能还回来读你的成员“i”变量。

  • 阿米巴丶
    2017-03-07 13:10:58

    因为有两个循环,第一个i=1时循环执行下面的循环for(;j<=8;j++),执行完后就j=9了;然后i=2,此时下面的for(;j<=8;j++)循环没办法执行,因为j已经是9了。所以只有第一次时会输出********