有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将比较if语句转换为switch case语句?

我是java编程新手,很难弄明白这一点

这是我的密码:

boolean running = true;
   PANTS:
while (running) {
    int waistMeasure = in.nextInt();

    if (waistMeasure >= 26 && waistMeasure < 28){
        System.out.println("You are a Small.");
        break;
    }
    if (waistMeasure >= 28 && waistMeasure < 30){
        System.out.println("You are a Medium.");
        break;
    }
    if (waistMeasure >= 30 && waistMeasure <= 34){
        System.out.println("You are a Large.");
        break;
    }

    else {
        System.out.println("Invalid input");
    }
}

有没有办法将其转换为switch case语句


共 (3) 个答案

  1. # 1 楼答案

    是的,有——但是你必须为每个值创建一个case(如下所示)。不能用单个case来表示一系列值。因此,如果你想要可读和可维护的代码,你应该坚持使用ifs

    switch (waistMeasure) {
    case 26:
    case 27:
        System.out.println("You are a Small.");
        running = false;
        break;
    case 28:
    case 29:
    // ....
    }
    
  2. # 2 楼答案

    你是说这样的吗

    请注意,必须为break语句使用PANTS标签才能退出循环,否则它们将从switch中断并继续循环

    PANTS: for (;;) {
        int waistMeasure = in.nextInt();
        switch (waistMeasure) {
            case 26:
            case 27:
                System.out.println("You are a Small.");
                break PANTS;
            case 28:
            case 29:
                System.out.println("You are a Medium.");
                break PANTS;
            case 30:
            case 31:
            case 32:
            case 33:
            case 34:
                System.out.println("You are a Large.");
                break PANTS;
            default:
                System.out.println("Invalid input");
        }
    }
    
  3. # 3 楼答案

    switch (waistMeasure) {
        case 26:
        case 27:
            System.out.println("You are a Small.");
            break PANTS;
        case 28:
        case 29:
            System.out.println("You are a Medium.");
            break PANTS;
        case 30:
        case 31:
        case 32:
        case 33:
        case 34:
            System.out.println("You are a Large.");
            break PANTS;
        default
            System.out.println("Invalid input");
    }