• 循环结构进阶


    什么是二重循环?

    语法
    一个循环体内又包含另一个完整的循环结构 
    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] + "
    ");
    }	
    
    示例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("
    ");		//换行
            }
        }
    }
    

    二重循环中使用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:继续本层的下一轮循环
    
  • 相关阅读:
    android中的一个圆角图片
    android中一个评分的控件
    C++ primer(第五版)中需要复习第二遍的知识点记录
    在ubuntu18.04上交叉编译opencv2.4.9
    C6748和音频ADC连接时候的TDM以及I2S格式问题
    C6748的启动方式问题
    AK5703的ALC
    cool edit工具介绍及使用
    CCS编译环境及TI仿真器的使用
    把YUV转化成opencv中的Mat格式的两行代码备份
  • 原文地址:https://www.cnblogs.com/yun---meng/p/12757351.html
Copyright © 2020-2023  润新知