switch语句和switch-case与if-else之间的转换

Posted keepcalmandneversaynever

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch语句和switch-case与if-else之间的转换相关的知识,希望对你有一定的参考价值。

switch语句
格式:
switch(变量){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
......
default:
语句;
break;
}
特点:1.根据变量的值,选择相应的case去判断,一旦满足case相应语句,如果没有break或者已经到结尾,会
继续执行其下的case语句
2.default是可选的,而且位置灵活
3.变量可以是:char byte short int String 枚举,其余的都不能用在switch语句中
4.case条件:其中条件只能写值,不能写范围
练习:输入一个月份,使输出的是季节

import  java.util.Scanner;
public class V{
    public static void main(String[] args){
        String s="summer";
        switch(s){
            case "spring":
                System.out.println("春天");
                break;
            case "summer":
                System.out.println("夏天");
                break;
            case "autumn":
                System.out.println("秋天");
                break;
            case "winter":
                System.out.println("冬天");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
        }
    }

技术分享图片

switch-case与if-else之间的转换
1.当多个case语句处理的语句块一致时,可以统一来书写
格式:
switch(变量){
case 常量1:
case 常量2:
case 常量3:
case 常量4:
......
System.out.println();
break;
//这些常量所输出的结果一样
case 常量5:
case 常量6:
case 常量7:
case 常量8:
......
System.out.println();
break;
defaul:
System.out.println();
break;
//这些常量所输出的结果一样
}
2.在一定情况下switch-case与if-else之间可以相互转化
3.if-else作用的范围比switch-case作用范围要大,但是当switch-case和if-else都可以用的情况下
推荐使用switch-case

技术分享图片

 

import  java.util.Scanner;
public class V{
    public static void main(String[] args){
        char ch=‘a‘;
        switch(ch){
            case  ‘a‘:
                System.out.println("A");
                break;
            case  ‘b‘:
                System.out.println("B");
                break;
            case  ‘c‘:
                System.out.println("C");
                break;
            case  ‘d‘:
                System.out.println("D");
                break;
            case  ‘e‘:
                System.out.println("E");
                break;
            default:
                System.out.println("other");
                break;
        }
public class V{
    public static void main(String[] args){
        int score=70;
        switch(score/10){
            case 10:
                System.out.println("及格");
                break;
            case 9:
                System.out.println("及格");
                break;
            case 8:
                System.out.println("及格");
                break;
            case 7:
                System.out.println("及格");
                break;
            case 6:
                System.out.println("及格");
                break;
            case 5:
                System.out.println("不及格");
                break;
            case 4:
                System.out.println("不及格");
                break;
            case 3:
                System.out.println("不及格");
                break;
            case 2:
                System.out.println("不及格");
                break;
            case 1:
                System.out.println("不及格");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
        }
    }
import java.util.Scanner;

public class V{
    public static void main(String[] args){
        System.out.println("输入月份");
        Scanner s=new Scanner(System.in);
        int month=s.nextInt();
        switch(month){
            case 1:
            case 2:
            case 3:
                System.out.println("春天");
                break;
            case 4:
            case 5:
            case 6:
                System.out.println("夏天");
                break;
            case 7:
            case 8:
            case 9:
                System.out.println("秋天");
                break;
            case 10:
            case 11:
            case 12:
                System.out.println("冬天");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}
import java.util.Scanner;

public class V{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        System.out.println("输入月份");
        int month=s.nextInt();
        System.out.println("输入日期");
        int day=s.nextInt();
        int sum=0;
        switch(month){
            case 12:
                sum += 30;
            case 11:
                sum += 31;
            case 10:
                sum += 30;
            case 9:
                sum += 31;
            case 8:
                sum += 31;
            case 7:
                sum += 30;
            case 6:
                sum += 31;
            case 5:
                sum += 30;
            case 4:
                sum += 31;
            case 3:
                sum += 28;
            case 2:
                sum += 31;//一月份的天数
            case 1:
                sum += day;

        }
        System.out.println(sum);
    }
}

 














































以上是关于switch语句和switch-case与if-else之间的转换的主要内容,如果未能解决你的问题,请参考以下文章

switch-case 执行顺序

switch-case语句中的多个变量[重复]

Switch-case语句

无中断的 switch-case 语句

为啥我在switch-case语句下嵌套if-else语句会报错?怎么改?

如何在 Kotlin 中实现 switch-case 语句