分支控制

分支控制

一、单分支

基本语法

if(条件表达式){
    执行代码块(可以有多条语句);
}

说明

  • 当条件表达式为true时,就会执行{}的代码。如果为false,就不执行。

流程图

二、双分支

基本语法

if(条件表达式){
    执行代码块1;
}else{
    执行代码块2;
}

说明

  • 当条件表达式成立,即执行代码块1;否则执行代码块2。
  • 双分支只能有一个执行入口!!!

流程图

三、多分支

基本语法

if(条件表达式1){
    执行代码块1;
}else if(条件表达式2){
    执行代码块2;
}
......
else{
    执行代码块n;
}

流程图

说明

  • 当条件表达式1成立时,即执行代码块1,后面的不再判断。
  • 若表达式1不成立,才去判断表达式2是否成立。
  • 若表达式2成立,就执行代码块2。
  • 以此类推,如果所有表达式都不成立,则执行else的代码块。
  • 只能有一个执行入口。
  • 特别说明:(1)多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有;(2)如果有else,所有的条件表达式都不成立,则默认执行else代码块。

四、嵌套分支

基本介绍

  • 在一个分支结构中又完整的嵌套了另一个完整的分支结构。里面的分支结构称为内层分支,外面的分支结构称为外层分支。建议:不要超过3层

基本语法

if(){
    if(){
        //if-else
    }else{
        //if-else
    }
}

五、switch

基本语法

switch(表达式){
    case 常量1:
    语句块1;
    break;
    case 常量2:
    语句块2;
    break;
      ...
    default:
    default语句块;
    break;
}

说明

  • switch关键字,表示switch分支
  • 表达式对应一个值(只要是表达式就一定会有一个值返回)
  • case 常量1: 当表达式的值等于常量1,就执行语句块1
  • break:表示退出switch
  • 如果和case 常量1匹配,就执行语句块1;如果没有匹配就继续匹配case 常量2....如果一个都没有匹配上,执行default
  • 常量值就是一个具体的值(如:1,2,"hello")
  • default后面有break会退出switch,没有也会退出switch

流程图

switch注意事项和细节讨论

  • 表达式数据类型应与case后的常量类型一致,或是可以自动转成可以相互比较的类型。(比如输入的是字符,常量是int,char-->int自动转换)
  • 表达式返回值的类型必须是:byte,short,int,char,enum(枚举),String
  • case子句中的值必须是常量或者是常量表达式,不能是变量
  • default子句是可选的,当没有匹配的case时,执行default;如果没有default子句,也没有匹配任何常量,则没有输出
  • break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾

六、switch和if的比较

  • 如果判断的具体数值不多,而且符合byte,short,int,char,enum,String这六种类型,建议使用switch语句。
  • 其它情况:对区间的判断,对结果为Boolean类型判断,使用if,if的使用范围更广

本文章使用limfx的vscode插件快速发布