流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。


三种基本流程结构

  • 顺序结构
  • 分支结构:选择性地执行代码,有if else 和 switch case 两种分支语句
  • 循环结构:根据循环条件,重复性执行。有while、do  while、for三种。jdk1.5提供了foreach循环,方便的遍历集合数组元素


具体使用如下

  1.if-else的使用方法

    • if(条件表达式){执行代码块;}
    • 二选一:if(条件表达式){执行代码块1;}else{执行代码块2;}
    • 多选一:if(条件表达式1){执行代码块1;}else if(条件表达式2){执行代码块2;}......else{执行代码块n;}
    • 特别说明
      • 条件表达式必须是布尔
      • 语句块只有一条执行语句时,{}可以省略,但建议保留
      • 可以嵌套使用
      • 多选一的格式,最后的else根据需要可以省略
      • 当多个条件是互斥关系时,顺序无所谓。当多个条件有包含关系时,小上大下
      • 就近原则:else寻找最近的if来配对

  2.switch-case结构

    • 语句:switch(表达式){case 常量1 :语句1//break;case 常量2:语句2//break...default:语句}
    • 根据表达式的结果,依次匹配的case常量值,一旦匹配成功,则执行case其中的语句。当调用完匹配的执行语句之后,仍然继续向下执行后续case中的执行语句,直到遇到break语句或执行至结构末尾结束。如没有可匹配的case常量值,则执行default中的执行语句。
    • break,可以使用在case中,执行到此关键字,便跳出结构。
    • 表达式只能是如下六种数据类型之一:byte,short,char,int,枚举,String。
    • 表达式和case之后只能声明常量
    • break关键字是可选的,根据实际情况选用。绝大部分是需要加的。
    • default相当于if else 中的else,上面都不符合,就执行默认的。default是可选的,可没有。而且位置是灵活的。
    • 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立
    • 当分支结构,可以使用switch-case同时case情况不多时,优先使用switch-case。因为执行效率稍高。

 

  3.for循环的结构

    • 循环结构的四个要素

a:初始化条件---多个可用逗号间隔
b:循环条件-----是布尔类型
c:循环体
d:迭代条件---多个可用逗号间隔

    • for循环的结构

for(a;b;d){
c
}

    • 执行过程:

a-b-c-d-b-c-d-b--FALSE就跳出

    • break语句

一旦执行到这个语句,就跳出for循环。

 

4.while循环结构

    • 循环结构的4个要素
    • while循环的结构

初始化条件
while(循环条件){
循环体;
迭代条件;//一但丢了迭代条件,可能造成死循环
}

    • for循环和while循环可以相互转换,初始化条件作用域不同,在while中出了循环依然可用。

  5.do-while循环(少用)

    • 循环结构四要素
    • do-while结构

初始化条件;
do{
循环体;
迭代条件;
}while(循环条件);

    • 执行过程和for 、while有区别
    • 初始化条件-循环体-迭代条件-循环条件-循环体-迭代条件-循环条件-False退出循环
    • 和for,while的区别,就是至少会执行一次循环体。开发过程中,主要使用for 和while,do-while使用较少

 

扩展:嵌套循环

  1. 定义:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环。
  2. 外层循环:循环结构B;内层循环:循环结构A。
  3. 内层循环遍历一遍,相当于外层循环的循环体执行一次。
  4. 假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环的循环体一共执行了m*n次。
  5. 外层循环控制行数,内层循环控制列数。
  6. break 和continue的使用:

           使用范围               循环中使用的作用(不同点)        相同点
break           switch-case                                             默认跳出的是包裹关键字最近的一层循环
               循环结构中                结束当前循环                     关键字后面不能声明执行语句
            
continue       循环结构中                结束当次循环

7.结束指定的外层循环:可以用标志标出循环,同时在break后添加标志。

lable:for(){
    for(){
    break lable;//结束指定标识的一层循环结构,continue相同
    }
}

 

posted @ 2021-05-21 16:37  泥鱼生长  阅读(55)  评论(0)    收藏  举报