• Java的三种结构(循环结构)


    一.循环的概念,组成,及类型
      1.循环的概念: 程序通过某种条件,重复的执行一段逻辑代码
      2.循环的组成:
        i.初始部分:用以判断的变量
        ii.循环条件:决定是否继续循环的依据,一般为布尔表达式
        iii.循环操作:单次执行的逻辑代码或任务
        iv.迭代部分:控制循环条件改变的数据变化
        注意:被循环条件判断的变量才是循环的初始变量和迭代部分
      3.循环的类型
        i. do{}while();循环,一般用在不确定循环次数的场景下
        ii.while(){}循环,一般用在循环次数明确的场景下
        iii.for(;;;){}循环,一般用在循环次数明确的场景下
    二.do{}while();循环
      语法:

        do{
          //逻辑代码;
         }while(布尔表达式);


      该循环的特点是:先执行大括号里的逻辑代码再进行while语句里的判断,若while()里的布尔表达式为真则接着执行,否则不执行
      因此该循环的循环次数为1-n次,也就是无论如何都会先执行一次do里的逻辑代码
    三.while(){}循环
      语法: 

         while(布尔表达式){
            //逻辑代码;
          }


      该循环的特点是先判断布尔表达式的真假,若为真则执行逻辑代码,为假则结束循环
      因此该循环的循环次数是0-n次
    四.for(;;){}循环
      语法:

     for(初始条件;布尔表达式;迭代部分){
        // 逻辑代码;
     }


      该循环特点为:可以一次性把循环的组成放入for语句中,for循环的执行过程为查看有无初始条件,然后进行布尔表达式的判断
      若为假则结束循环,若为真则进行逻辑代码的执行,然后执行迭代部分,再接着一次循环
      且若有需要可以把初始条件和迭代部分放在其他地方,但分号不可省略
      此循环的循环次数为0-n次
      注意:for循环可以用关键字break控制它,用法为:
      先给for循环命名,命名语法是 命名:for(;;;){}
      然后可以用 break 命名;
      打断该循环,但好像代码界里对此方法颇有诟病
      continue无此特殊用法
    五.流程控制关键字
      1.break
        该关键字用于跳出循环结束该循环,特殊用法放在了for循环介绍里,执行流程为:
        程序读到break关键字则会去寻找放入了该语句的循环体,根据就近原则跳出拥有该关键字的最近的循环
        如

    while(true){
              break;
           int a = 5;    
            }
      /*
       *
    在该循环中,若无break则是一个死循环,但有了break之后
       *程序判断入口表达式为真,进去执行代码时发现了break    *则接着直接跳出该循环,连对接下来循环内变量 a 的初始化赋值都不会进行
      
    */


      2.continue
        该关键字用于跳出本次循环进行下一次循环,执行流程为:
        程序读到continue 关键字则会跳出本次循环,然后根据就近原则进行下一次循环的判断执行
        如:

     while(i){ //假设已经给i赋值为true
       i = false
       continue;
       i = true;
     }//在该循环中,程序判断入口表达式为真,进入循环执行逻辑代码,给入口变量赋值为假,然后程序执行了continue
      //程序直接跳出该次循环,不执行后续语句,然后进行下一次的循环,但入口值已经改变,该循环结束,也不会读取i = true
      //与break的区别是,break直接结束,不会再进行下一次循环,更不会有下一次循环的入口判断,而continue则会


    六.循环的嵌套
      一般的,循环可以相互嵌套,用for举例 如:
        

    for(int i = 0;i < 5;i++){
          for(int j = 0;j < 5;j++){
            //代码体;
          }
            //代码体;
        }
      /*
      *在本循环中,执行程序为,第一个循环的初始值i 为0,显然满足入口条件,接着进入第一层循环体,然后进行第二个循环体的循环
      *而第二层循环体的入口条件显然也满足,因此在该示例中第一层的第一次循环则要完成第二层的全部循环,也就是说外层循环一次
      *内层要把所有的循环次数都循环完成,然后外层开始第二次循环判断,所以这一整个大的循环体循环进行次数为 若外层为 i 次
      *内层为 j 次,则总循环次数为 i*j 
      *注意,在这种大的循环体中 break,continue关键字都是根据就近原则使用 (除了对某个循环赋值后 用break打断)
      */
  • 相关阅读:
    个人介绍
    2021-03-16 助教小结
    2020软件工程作业05
    2020软件工程作业04
    2020软件工程作业03
    第二次作业 计划与执行
    从蓝天到名利 所有你想要的 都别随风去
    Android Task 相关
    Android ViewDragHelper源码解析
    android利用反射通过代码收缩通知栏
  • 原文地址:https://www.cnblogs.com/Lzzycola/p/13336334.html
Copyright © 2020-2023  润新知