什么是二重循环?
语法
一个循环体内又包含另一个完整的循环结构
while(循环条件1) { //外层循环 do {
//循环操作1 //循环操作1
while(循环条件2) { //内层循环 do {
//循环操作2 //循环操作2
} }while(循环条件1);
} }while(循环条件2);
for(循环条件1) { while(循环条件1) {
//循环操作1 //循环操作1
for(循环条件2) { for(循环条件2) {
//循环操作2 //循环操作2
} }
} }
外层循环变量变化一次,内层循环变量要变化一遍
示例1:
for(int i = 0; i <classNum; i++){
sum = 0.0;
System.out.println("请输入第" + (i+1) + "个班级的成绩");
for(int j = 0; j < score.length; j++){
System.out.print("第" + (j+1) + "个学员的成绩:");
score[j] = input.nextInt();
sum = sum + score[j];
}
aver [i] = sum / score.length; //计算平均分
System.out.println("第"+(i+1)+"个班级平均分" + aver [i] + "\n");
}
示例2:
public class Rectangle {
public static void main(String[] args) {
System.out.println("打印矩形");
for(int i = 1; i <= 5; i++){ //打印第i行
for(int j = 1; j <= 5; j++){ //打印5个*号
System.out.print("*");
}
System.out.print("\n"); //换行
}
}
}
二重循环中使用continue
问题:若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数 示例: for(int i = 0; i < classnum; i++){ //… for(int j = 0; j < score.length; j++){ //… if(score[j] < 85) { continue; } count++; } //… } 执行continue,进入本层循环的下一轮循环,不再执行count++
内循环中的break可以终止二重循环的执行吗?
问题:有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服最后打印总共买了几件衣服 示例: for(int i = 0; i < 5; i++){ System.out.println("欢迎光临第" + (i+1) + "家专卖店"); for(int j = 0; j < 3; j++){ System.out.println("要离开吗(y/n)?"); choice = input.nextLine(); if("y".equals(choice)){ break; } System.out.println("买了一件衣服"); count++; //计数器加1 } //…… }
二重循环中continue和break对比
for(…){ for(…) { //…… continue; //…… } //…… } 继续本层下一轮循环 --- continue for(…){ for(…) { //…… break; //…… } //…… } 跳出本层循环 --- break 总结: 二重循环是一个循环体内又包含另一个完整的循环结构 在二重循环中,外层循环变量变化一次,内层循环变量要从初始值到结束值变化一遍 在二重循环中可以使用break、continue语句控制程序的执行 break:跳出本层循环 continue:继续本层的下一轮循环