循环嵌套
在一个循环内部可以嵌套另一个或多个循环。
外部循环每执行1次,内层循环会执行1轮(全部)。
案例1:
连续3天,每天都要表白5次。
package com.briup.chap03;public class Test03_Nest {public static void main(String[] args) {for(int i = 1; i <= 3; i++) {for(int j = 0; j < 5; j++) {System.out.println("I miss you!");}System.out.println("***************");}}
}
案例2:
输出以下内容,要求每次只能输出一个 '*'
public static void main(String[] args) {for(int i = 1; i <= 5; i++){for(int j = 0; j < i; j++){System.out.print("*");}System.out.println();}
}
注意:
- println方法会自动换行
- print 方法不会自动换行
案例3:
输出以下内容,要求每次只能输出一个 '*'
public static void main(String[] args) {//line表示要输出的行数int line = 5;//外层循环控制打印的行数for(int i = 1; i <= line; i++){//这个循环控制每行打印的空格for(int j = 0; j < line - i; j++){System.out.print(" ");}//这个循环控制每行打印的*for(int k = 0; k < (2*i-1); k++){System.out.print("*");}//当前行中的空格和*都打印完了,最后输出一个换行System.out.println();}
}
label关键字
代码中出现多层循环嵌套,label标签配合break关键字,可以使程序从内部循环中跳出。
案例描述:
思考:下面案例中break关键字能跳出外层循环吗?
public static void main(String[] args) {for(int i = 0; i < 3; i++) {//外层循环for(int j = 0; j < 5; j++) {//内层循环if(j == 2){break;}}}
}
注意,默认情况下,在嵌套循环中,break和continue只能对当前循环起作用。
如果想让break或continue针对某一个指定的循环起作用,那么可以使用label标签
给循环起名字,然后使用break或continue加上label标签名
即可。
例如,
package com.briup.chap03;public class Test04_Label {public static void main(String[] args) {//标签名: 循环label1: for(int i = 1; i <= 3; i++) {label2: for(int j = 0; j < 5; j++) {if(j == 2) {//跳出指定的循环// break 标签名break label1;//continue label1;}System.out.println("I miss you!");}System.out.println("***************");}}
}