Java基础 -- 流程控制语句

Java基础 – 流程控制语句

在这里插入图片描述

在这里插入图片描述


IF

在这里插入图片描述

if (条件表达式) {
    语句块;
}

在这里插入图片描述


代码演示

public static void main(String[] args) {
    System.out.println("请输入一个数字:");
    Scanner input = new Scanner(System.in);
    int num = input.nextInt(); // 接收键盘输入数据
    // 判断用户输入的数据是否大于100
    if (num > 100) {
        System.out.println("输入的数字大于100");
    }
    // 判断用户输入的数据是否等于100
    if (num == 100) {
        System.out.println("输入的数字等于100");
    }
    // 判断用户输入的数据是否小于100
    if (num < 100) {
        System.out.println("输入的数字小于100");
    }
}
public static void main(String[] args) {
    int num1 = 50;
    int num2 = 34;
    if (num1 > num2) {
        System.out.println("num1大于num2");
    }
    if (num1 == num2) {
        System.out.println("num2等于num2");
    }
    if (num1 < num2) {
        System.out.println("num1小于num2");
    }
}
public static void main(String[] args) {
    String username = "admin"; // 用户名
    String userpass = "123456"; // 密码
    String code = "0000"; // 验证码
    if (username != "admin" && userpass != "123456" && code != "0000") {
        System.out.println("登录失败!");
        System.out.println("异常!");
    }
}

if-else 结构

格式

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

执行流程

在这里插入图片描述


代码演示

public static void main(String[] args) {
    int num1 = 50;
    int num2 = 34;
    // 如果num1等于num2
    if (num1 == num2) {
        System.out.println("num1等于num2");
    }
    // 如果num1大于num2
    if (num1 > num2) {
        System.out.println("num1大于num2");
    } else {
        // 否则就是num1小于num2
        System.out.println("num1小于num2");
    }
}

多条件 if-else-if 语句

格式

if(表达式1) {
    语句块1;
} else if(表达式2) {
    语句块2;
...
} else if(表达式n) {
    语句块n;
} else {
    语句块n+1;
}

在这里插入图片描述


实例代码

public static void main(String[] args) {
    int num1 = 50;
    int num2 = 34;
    if (num1 == num2) { // 如果num1等于num2
        System.out.println("num1等于num2");
    } else if (num1 > num2) { // 如果num1大于num2
        System.out.println("num1大于num2");
    } else { // 否则就是小于
        System.out.println("num1小于num2");
    }
}
public static void main(String[] args) {
    System.out.println("请输入考试成绩:");
    Scanner input = new Scanner(System.in);
    int score = input.nextInt(); // 接收键盘输入数据
    if (score >= 90) { // 考试成绩>=90
        System.out.println("优秀");
    } else if (score >= 80) { // 90>考试成绩>=80
        System.out.println("良好");
    } else if (score >= 60) { // 80>考试成绩>=60
        System.out.println("中等");
    } else { // 考试成绩<60
        System.out.println("差");
    }
}

嵌套 if 的使用

格式

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

在这里插入图片描述


实例代码

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入出行的月份:");
        int month = sc.nextInt();
        System.out.println("选择头等舱还是经济舱?数字1为头等舱,数字2为经济舱");
        int kind = sc.nextInt();
        double result = 60000; // 原始价格
        // 旺季的票价计算
        if (month <= 11 && month >= 4) {
            if (kind == 1) { // 旺季头等舱
                result = result * 0.9;
            } else if (kind == 2) { // 旺季经济舱
                result = result * 0.8;
            } else {
                System.out.println("选择种类有误,请重新输入!");
            }
        }
        // 淡季的票价计算
        else if ((month >= 1 && month <= 3) || month == 12) {
            if (kind == 1) { // 淡季头等舱
                result = result * 0.5;
            } else if (kind == 2) { // 淡季经济舱
                result = result * 0.4;
            } else {
                System.out.println("选择种类有误,请重新输入!");
            }
        } else {
            System.out.println("日期选择有误,请重新输入!");
        }
        System.out.println("您选择的机票价格为:" + result);
    }
}

switch

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
格式

switch(表达式) {
    case1:
        语句块1;
        break;
    case2:
        语句块2;
        break;case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
    break;
}

实例代码

public static void main(String[] args) {
    System.out.println("请输入座位号码:");
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();
    switch (num) {
    case 8:
        System.out.println("恭喜你,获得了三等奖!");
        break;
    case 88:
        System.out.println("恭喜你,获得了二等奖!");
        break;
    case 888:
        System.out.println("恭喜你,获得了一等奖!");
        break;
    default:
        System.out.println("谢谢参与!");
        break;
    }
}

区别


switch实现计算星座功能

public static void main(String[] args) {
    System.out.println("请输入您的出生年月(如 0123 表示 1 月 23 日):");
    Scanner sc = new Scanner(System.in);
    int monthday = sc.nextInt();
    int month = monthday/100;
    int day = monthday%100;
    String xingzuo = "";
    switch (month) {
      case 1:
            xingzuo = day<21?"摩羯座":"水瓶座";
            break;
      case 2:
            xingzuo = day<20? "水瓶座":"双鱼座";
            break;
      case 3:
            xingzuo = day<21?"双鱼座":"白羊座";
            break;
      case 4:
            xingzuo = day<21?"白羊座":"金牛座";
            break;
        case 5:
            xingzuo = day<22?"金牛座":"双子座";
            break;
      case 6:
            xingzuo = day<22?"双子座":"巨蟹座";
            break;
      case 7:
            xingzuo = day<23?"巨蟹座":"狮子座";
            break;
      case 8:
            xingzuo = day<24?"狮子座":"处女座";
            break;
      case 9:
            xingzuo = day<24?"处女座":"天秤座";
            break;
      case 10:
            xingzuo = day<24?"天秤座":"天蝎座";
            break;
      case 11:
            xingzuo = day<23?"天蝎座":"射手座";
            break;
      case 12:
            xingzuo = day<22?"射手座":"摩羯座";
            break;
    }
    System.out.println("您的星座是:" +xingzuo);
}

if-else 实现计算星座功能

public static void main(String[] args) {
    System.out.println("请输入您的出生年月(如 0123 表示 1 月 23 日):");
    Scanner sc = new Scanner(System.in);
    int monthday = sc.nextInt();
    int month = monthday / 100;
    int day = monthday % 100;
    String xingzuo = "";

    if (month == 1) {
        if (day < 21) {
            xingzuo = "摩羯座";
        } else {
            xingzuo = "水瓶座";
        }
    } else if (month == 2) {
        if (day < 20) {
            xingzuo = "水瓶座";
        } else {
            xingzuo = "双鱼座";
        }
    } else if (month == 3) {
        if (day < 21) {
            xingzuo = "双鱼座";
        } else {
            xingzuo = "白羊座";
        }
    } else if (month == 4) {
        if (day < 21) {
            xingzuo = "白羊座";
        } else {
            xingzuo = "金牛座";
        }
    } else if (month == 5) {
        if (day < 22) {
            xingzuo = "金牛座";
        } else {
            xingzuo = "双子座";
        }
    } else if (month == 6) {
        if (day < 22) {
            xingzuo = "双子座";
        } else {
            xingzuo = "巨蟹座";
        }
    } else if (month == 7) {
        if (day < 23) {
            xingzuo = "巨蟹座";
        } else {
            xingzuo = "狮子座";
        }
    } else if (month == 8) {
        if (day < 24) {
            xingzuo = "狮子座";
        } else {
            xingzuo = "处女座";
        }
    } else if (month == 9) {
        if (day < 24) {
            xingzuo = "处女座";
        } else {
            xingzuo = "天秤座";
        }
    } else if (month == 10) {
        if (day < 24) {
            xingzuo = "天秤座";
        } else {
            xingzuo = "天蝎座";
        }
    } else if (month == 11) {
        if (day < 23) {
            xingzuo = "天蝎座";
        } else {
            xingzuo = "射手座";
        }
    } else if (month == 12) {
        if (day < 22) {
            xingzuo = "射手座";
        } else {
            xingzuo = "摩羯座";
        }
    }
    System.out.println("您的星座是:" + xingzuo);
}

综合上诉,效率方面Switch显得要快一些,但是从实用性来说 如果否则,相对来说更加语义通用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值