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();}