Java基础 学习笔记八

控制语句 分支语句 switch


switch语句完整格式

  1. expression 中执行完必须是个值并且必须是 int 或者 枚举 或者 字符串类型
  2. break语句只要执行,switch就要结束
  3. default语句不是必须的,但是建议写上,这样程序更加健壮
switch(expression){
	//expression 中执行完必须是个值value,并且必须是 int 或者 枚举 或者 字符串类型
	case value1:
		//当 expression的值等于 value1时,执行这里代码
		breakcase value2:
		//当 expression的值等于 value2时,执行这里代码
		breakcase value3:
		//当 expression的值等于 value3时,执行这里代码
		break//...
	default:
		//当expression的值与所有的case语句都不匹配时,执行这里的代码


switch语句完成的if语句一定可以完成,但是在一些情况下switch写代码更加好

---
package chapter2;

import java.util.Scanner;

public class switch01 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println("请输入月份: ");

        int month = s.nextInt();
        String season = "您输入的月份不存在";
        //case可以合并
        switch (month) {
            case 3: case 4: case 5:{
                season = "春季";
                //break如果没有,可能会有case穿透现象
                break;
            }

            case 6: case 7: case 8:{
                season = "夏季";
                break;
            }

            case 9: case 10: case 11:{
                season = "秋季";
                break;
            }

            case 12: case 1: case 2:{
                season = "冬季";
                break;
            }
        }
        System.out.println(season);

    }

}

如果没有break会有case穿透现象存在

例如:

package chapter2;

import java.util.Scanner;

public class switch01 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println("请输入月份: ");

        int month = s.nextInt();
        String season = "您输入的月份不存在";
        //case可以合并
        switch (month) {
            case 3: case 4: case 5:{
                season = "春季";
                //break如果没有,可能会有case穿透现象
//                break;
            }

            case 6: case 7: case 8:{
                season = "夏季";
//                break;
            }

            case 9: case 10: case 11:{
                season = "秋季";
                break;
            }

            case 12: case 1: case 2:{
                season = "冬季";
                break;
            }
        }
        System.out.println(season);

    }

}

输出:
在这里插入图片描述

package chapter2;
/*
编写一个计算器
输入符号为“+” 则输出两个数的和,输出符号为“-”则输出两个数的差
 */

import java.sql.PreparedStatement;
import java.util.Scanner;

public class switch02 {
    public static void main(String[] args) {
        int result = 0;
        System.out.println("欢迎使用简易版计算器");

        Scanner s = new Scanner(System.in);

        System.out.println("请输入第一个数字");
        int num1 = s.nextInt();

        System.out.println("请输入第二个数字");
        int num2 = s.nextInt();

        System.out.println("请输入运算符");
        String oper = s.next();

        switch (oper) {
            case "+": {
                result = num1 + num2;
                break;
            }

            case "-":{
                result = num1 - num2;
                break;
            }

            case "*":{
                result = num1 * num2;
                break;
            }

            case "/":{
                result = num1 / num2;
                break;
            }

            case "%":{
                result = num1 % num2;
                break;
            }

            default:{
                System.out.println("不支持运算!");
            }

        }

        System.out.println(num1 + oper + num2 + "=" + result );
    }

}

在这里插入图片描述

switch语句注意事项

  1. switch适用于判断固定值,if适用于判断返回和区间。switch能做的if肯定能做,但是if能完成的switch不一定能完成
  2. case语句中的值必须是字面量而不是变量
  3. case语句的值必须和switch值的类型一致
  4. 每个switch语句必须加上一个break语句,防止case穿透现象
  5. 一般都有一个default分支处理紧急情况
  6. default可以放在任意位置,但是一般放在最后

java12中switch新特性,代码变得更加简洁

switch(x){
	case 1 -> System.out.println(1);
	case 2 -> System.out.println(2);
	case 3 -> System.out.println(3);
	default -> Systemout.out.println("default");
}

switch(x){
	case 1, 2, 3 -> System.out.println("1,2,3");
}

switch(x){
	case 1 -> {
		System.out.println(1);
		System.out.println(1);
	}
}

switch (oper) {
            case "+" -> {
                result = num1 + num2;
            }

            case "-" -> {
                result = num1 - num2;
            }

            case "*" -> {
                result = num1 * num2;
            }

            case "/" -> {
                result = num1 / num2;
            }
            default -> {
                System.out.println("错误");
            }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值