6.1 循环看做整体

看下面的一个二重循环代码
public static void main(String[]args){
    for(int i=0;i < 10;i++){
        /*
        打印10个数字
         */
         for(int j=1;j <= 10;j++)
            System.out.print(i*10+j+" ");
        /*
        转行
         */
        System.out.println();
    }
}
这段代码打印的结果就是1到100
这段二重循环的代码你可以这样阅读,内层的循环打印10个数字,分别是10i+1,10i+2……10i+10 ,然后System.out.println()功能是转行
for(int j=0;j <= 10;j++)
    System.out.print(i*10+j+" ");
 那么外层循环的一次循环将打印10个数字,然后转行。最外层的循环,循环10次,那么就是10*10个数字了。

下面是一个打印九九乘法表例子,运行一下看看结果:
public static void main(String[]args){
    for(int i=1;i < 10;i++){
        /*
        
         打印10个
         */
         for(int j=1;j < 10;j++)
            System.out.print(i+"×"+j+"="+(i*j)+"\t");
        /*
        
         转行
        
         */
        System.out.println();
    }
}
注意看看中间打印的乘法式子是怎么拼起来的(蓝色部分是固定的)。


我们把上面的数字换成* System.out.print("* ");
for(int i=1;i <= 10;i++){
    for(int j=1;j <= 10;j++)
        System.out.print("* ");
    System.out.println();
}
那么就会打印10*10个字符'*'的矩阵

练习题

  • 练习题
    1.打印一个5*6的矩阵 (4分) [编程填空]
    打印一个5*6(5行6列)的矩阵,那么下面的代码应该怎么写?
    for(int i=1;i <=         ;i++){    for(int j=1;j <=         ;j++)        System.out.print("*");    System.out.println();}
    
    2.以下的代码,如果内循环的条件,从j<=10改成j<i,会打印出什么? (2分) [选择]
    A.
    B. 编译错误
    C. 死循环
    D. *组成的直角三角形,直边在左
    E. *组成的直角三角形,直边在右
    for(int i=1;i <= 10;i++){
            for(int j=1;j <= 10;j++)
                System.out.print( "*");
            System.out.println();}
    
    3.内层循环条件改成j<i,相当于这个循环打印i个*。 (2分) [编程填空]
    于是第一行打印1个*,第二行打印2个*,……第i行打印i个*,就形成了一个直角三角形。假如要打印一个倒直角三角形,直边在左,该怎么修改内层的条件呢?
    提示:第一行打印10个*,第二行打印9个*,第i行打印?这个式子列出来,就可以直接填上去了。
    for(int i=1;i <= 10;i++){    for(int j=1;        ;j++)        System.out.print("*");    System.out.println();}