循环嵌套
在一个循环内部可以嵌套另一个或多个循环。
外部循环每执行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("***************");
}
}
}