switch-case与if-else的转换

Posted afangfang

tags:

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

对学会成绩大于60分的,输出合格,低于60分的输出不合格

import java.util.Scanner;
public class TestSwitch3 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("输入分数");
        int score = s.nextInt();
        if (score >= 60) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }

        
        switch (score / 10) {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("不及格");
            break;
        case 6:
        case 7:
        case 8:
        case 9:
        case 10:
            System.out.println("及格");
            break;
        default:
            System.out.println("输入有误");
            break;
        }
    }
}

说明:当有多个case语句处理的语句块一致时,可以统一的来书写 

           一定情况下switch-case与if-else 之间可以互相转换的。

 

 

 

 练习:从键盘输入2014年的 month 和 day   输出 输入的日期为2014年的第几天

import java.util.Scanner;
public class TestSwitch4 {
    // 4 6 9 11 小
    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;// 记录month月 day日是2014的第几天
        // 使用switch-case
        switch (month) {
        case 12:
            sum += 30;// 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:
            /*判断是否是闰年
             * if((year %4==0 && year%100!=0) || year %400==0){
                sum += 29;
                }else{
                sum += 28;
            }
            */
            sum += 28;
        case 2:
            sum += 31;// 31是一月份的天数
        case 1:
            sum += day;
            System.out.println(sum);
        }
    }
}

 

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

消除代码中的 if-else/switch-case

使用函数指针和多态代替冗长的if-else或者switch-case

if-else和switch-case哪个效率更高?看这四张图。

有啥方法可以减少程序中条件语句if-else或者switch-case的过多嵌套?

Java:通过字节码看if-else和switch-case

有啥完美的方法替代java中的 if-else,switch-case