如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环,嵌套循环可以是 for 循环嵌套 while 循环,也可以是 while 循环嵌套 do while 循环......即各种类型循环都可以作为外层循环,各种类型的循环也可以作为内层循环。
实例:
public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 3; j++) { System.out.println("i的值是:"+i+"\tj的值是:"+j); } } }
运行上面代码,可以看到如下结果:
更具上面的代码可以看出,进入嵌套循环时,外层循环变量 i 开始为 0,这是进入外层循环。进入外层循环后,内层循环把 i 当成一个普通变量,其值为0,内层循环就是一个普通循环。内层循环3次结束,再跳到外层循环,外层循环变为1,接着循环内层循环,一直到外层循环判断值为 false 时候整个循环结束。
嵌套循环流程图 :
实际上 ,嵌套循环不仅可以是两层循环,好可以是三层嵌套、四层嵌套......不论如何嵌套 ,我们都可以把内层循环当成外层循环的循环体来对待,区别只是这个循环体里包含了需要反复执行的代码。
》》使用双重 for 循环打印图形
》直角三角形
public static void main(String[] args) { for (int i = 0; i < 5; i++) { //外层打印行数 for (int j = 0; j <= i; j++) { //内层打印次数 System.out.print("*"); } System.out.println(); } }
》倒直角三角形
public static void main(String[] args) { for (int i = 5; i > 0; i--) { //外层打印行数 for (int j = i; j > 0; j--) { //内层打印次数 System.out.print("*"); } System.out.println(); } }
》等腰三角形
public static void main(String[] args) { for (int i = 1; i < 7; i++) { for (int j = 0; j <6-i ; j++) { System.out.print(" "); } for (int j = 0; j < i; j++) { System.out.print(" *"); } System.out.println(); //换行 } }
》倒等腰三角形
public static void main(String[] args) { for (int i = 0; i < 7; i++) { for (int j = i; j >0 ; j--) { System.out.print(" "); } for (int j = i; j < 7; j++) { System.out.print(" *"); } System.out.println(); } }
》菱形
public static void main(String[] args) { for (int i = 1; i < 7; i++) { for (int j = 0; j < 6 - i; j++) { System.out.print(" "); } for (int j = 0; j < i; j++) { System.out.print(" *"); } System.out.println(); // 换行 } for (int i = 0; i < 7 - 2; i++) { for (int j = i + 1; j > 0; j--) { System.out.print(" "); } for (int j = i; j < 5; j++) { System.out.print(" *"); } System.out.println(); } }
》打印乘法口诀表
public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j<=i; j++) { System.out.print(j+" * "+i+" = "+i*j+"\t"); } System.out.println(); } }