Java分支结构

来源:互联网 发布:沙迪克火花机编程 编辑:程序博客网 时间:2024/06/03 06:19

程序是自上而下,按顺序执行的,遇到根据不同的条件执行不同的代码时,就要使用选择结构。Java中有两种选择结构:

  • if语句

  • switch语句

两者的区别:
if语句多用于范围的条件判断,判断一个变量在不在某个范围;而switch语句多用于等值的条件判断,判断一个变量与一系列值中某个值是否相等

if语句

if语句有四种不同的形式:
1. if
2. if-else
3. 多重if-else
4. 嵌套if-else

if

语法:如果表达式结果为true,执行语句;如果表达式结果为false,则直接跳过语句。

if(表达式){    语句;}

示例:

public class Demo {    public static void main(String[] args) {        int age = 30;        if(age >= 18){            System.out.println("已经成年了");        }    }}

if-else

语法:如果表达式结果为true,执行语句1;如果表达式结果为false,执行语句2。

if(表达式){    语句1;}else{    语句2;}

示例:

public class Demo {    public static void main(String[] args) {        int age = 10;        if(age >= 18){            System.out.println("已经成年了");        }else{            System.out.println("还未成年");        }    }}

多重if-else

语法:
如果表达式1结果为true,执行语句1;
如果表达式1结果为false,则判断表达式2;
如果表达式2结果为true,执行语句2,表达式2结果为false,执行语句3。

if(表达式1){    语句1;}else if(表达式2){    语句2;}else{    语句3;}

示例:

public class Demo {    public static void main(String[] args) {        int age = 10;        if(age >= 60){            System.out.println("老人");        }else if(age >= 18){            System.out.println("成年人");        }else{            System.out.println("未成年");        }    }}

嵌套if-else

语法:
如果表达式1结果为true,则判断表达式2;
如果表达式2结果为true,执行语句1,表达式2结果为false,执行语句2。
如果表达式1结果为false,则判断表达式3;
如果表达式3结果为true,执行语句3,表达式3结果为false,执行语句4。

if(表达式1){    if(表达式2){      语句1;    }else{      语句2;        }}else{    if(表达式3){      语句3;        }else{      语句4;        }}

示例:

public class Demo {    public static void main(String[] args) {        int age = 10;        int health = 10;        if(age >= 18){            if(health > 60){                System.out.println("健康的成年人");            }else{                System.out.println("生病的成年人");            }        }else{            if(health > 60){                System.out.println("健康的小孩");            }else{                System.out.println("生病的小孩");            }        }    }}

switch语句

switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

语法:
计算表达式的值,依次与case常量比较;
如果表达式结果与某个case的常量匹配,则执行该case下的语句;
如果表达式结果与所有case都不匹配,则执行defalut下的语句;
如果没有break语句,程序将继续向下执行,直到break或switch语句结束。

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

示例:

public class Demo {    public static void main(String[] args) {        int day = 2;        switch (day) {        case 1:            System.out.println("今天是星期一");            break;        case 2:            System.out.println("今天是星期二");            break;        case 3:            System.out.println("今天是星期三");            break;        case 4:            System.out.println("今天是星期四");            break;        case 5:            System.out.println("今天是星期五");            break;        case 6:            System.out.println("今天是星期六");            break;        case 7:            System.out.println("今天是星期天");            break;        default:            System.out.println("没有这一天");            break;        }    }}