1.什么是二重循环:
一个循环体内又包含另一个完整的循环结构 语法: while(循环条件1) { //循环操作1 while(循环条件2) { //循环操作2 } }do {
//循环操作1 do { //循环操作2 }while(循环条件1); }while(循环条件2);for(循环条件1) {
//循环操作1 for(循环条件2) { //循环操作2 } }while(循环条件1) {
//循环操作1 for(循环条件2) {//循环操作2
} } ※各种循环可以相互嵌套 2.二重循环执行顺序: 外层循环执行1次内层循环执行1周案例:
若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分? public class Demo02 { public static void main(String[] args) { Scanner input=new Scanner(System.in); //二重循环 /** * * 外层循环执行一次,内层循环执行1周 * */ for (int i = 1; i <=3; i++) { System.out.println("*************************************"); System.out.println("请输入第"+i+"个班级4位学员的成绩:"); int [] scores=new int[4]; //学员成绩数组 double sum=0.0; //计算总和 for (int j = 0; j <scores.length; j++) { System.out.println("请输入第"+(j+1)+"位学员的成绩:"); scores[j]=input.nextInt(); sum=sum+scores[j]; } System.out.println("第"+i+"个班级的平均分为:"+sum/scores.length); } } } 案例:打印矩形 public class Demo03 { public static void main(String[] args) { //外层循环控制行数 for (int i = 1; i <=5; i++) { //内层循环控制个数 for (int j = 1; j <=5; j++) { System.out.print("*"); } System.out.println(); } } } 3.在二重循环中使用 continue:使用continue代表结束当前循环,继续下一次循环案例:若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数
public class Demo04 { public static void main(String[] args) { Scanner input=new Scanner(System.in); //二重循环 /** * * 外层循环执行一次,内层循环执行1周 * */ int count=0; //存储大于85分的人数 for (int i = 1; i <=3; i++) { System.out.println("*************************************"); System.out.println("请输入第"+i+"个班级4位学员的成绩:"); int [] scores=new int[4]; //学员成绩数组 double sum=0.0; //计算总和 for (int j = 0; j <scores.length; j++) { System.out.println("请输入第"+(j+1)+"位学员的成绩:"); scores[j]=input.nextInt(); sum=sum+scores[j]; if(scores[j]<85){ //结束本次循环,进入下一次循环 continue; } count++; } System.out.println("第"+i+"个班级的平均分为:"+sum/scores.length); } System.out.println("分数大于85的人数:"+count); }}
4.在二重循环中使用 break:使用break代表结束(跳出)当前循环案例:有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服 最后打印总共买了几件衣服
public class Demo05 {
public static void main(String[] args) { Scanner input=new Scanner(System.in); int count=0; //外层循环控制5家店 for (int i = 1; i <=5; i++) { System.out.println("欢迎光临第"+i+"家店"); //内层循环控制最多买3件衣服 for (int j = 1; j <=3; j++) { System.out.println("是否离开(y/n)"); char chois=input.next().charAt(0); if(chois=='y'){ //如果输入Y代表离开 break; } System.out.println("买了一件衣服"); count++; } } System.out.println("共买了"+count+"件衣服"); } }