zoukankan      html  css  js  c++  java
  • 二重循环

    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+"件衣服");
          }
         }

  • 相关阅读:
    洛谷 P1886 滑动窗口 (单调队列)
    Acwing 288.休息时间 (环形DP)
    Acwing 287.积蓄程度 (树形DP换根)
    2020 Multi-University Training Contest 5 Tree (树形DP)
    剑指offer-JZ50-数组中的重复数字(C++)
    假设以下有一个结构体存放的是学生的记录,每条记录包括:学号、姓名、成绩
    剑指offer-JZ48-不用加减乘除做加法(C++)
    剑指offer-JZ51-构建乘积数组
    数据结构与算法->递归
    力扣(LeetCode)试题6-Z字形变换 C++代码
  • 原文地址:https://www.cnblogs.com/szhhhh/p/9080955.html
Copyright © 2011-2022 走看看