当前位置: 首页 > 知识库问答 >
问题:

如何将比较if语句转换为switch case语句?[副本]

刁浩言
2023-03-14

我是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个答案

齐迪
2023-03-14

你是说这样的事吗?

请注意,您必须使用break语句的PANTS标签退出循环,否则它们将从开关中断,并将继续循环。

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");
    }
}
祁修诚
2023-03-14
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");
}
秦城
2023-03-14

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

switch (waistMeasure) {
case 26:
case 27:
    System.out.println("You are a Small.");
    running = false;
    break;
case 28:
case 29:
// ....
}
 类似资料:
  • 问题内容: 告诉我 少于3个分支的交换机效率低下,请改用if语句。 这是为什么?为什么是3?他们如何定义效率? 问题答案: 因为语句是使用两个特殊的JVM指令和编译的。在处理很多案例时它们很有用,但是当您只有很少的分支机构时,它们会导致开销。 相反,一条语句被编译为典型的 …链,这些链速度更快,但在长分支链中使用时需要更多的比较。 您可以通过查看字节码来看到差异,无论如何我都不担心这些问题,如果有

  • 在java中是否可以将if语句转换为switch语句?

  • 问题内容: 在Python中使用IF语句时,必须执行以下操作才能使“层叠”正常工作。 检查“等于”时,是否有办法使Python接受多个值?例如, 问题答案: if job in (“mechanic”, “tech”): print “awesome” elif job in (“tool”, “rock”): print “dolt” 括号中的值是一个元组。该运营商检查,看是否右手柄元组内的某处

  • 我试着比较两个值 我得到一个错误

  • 我有一个if else语句,它可能会在不久的将来增长。 因为,这看起来已经很乱了,我想如果我能在这里应用任何设计模式会更好。我研究了战略模式,但我不确定这是否会降低其他条件。有什么建议吗?

  •  if 语句,就是类似于「如果○○的话,做●●」,根据条件判断脚本的一部分是否执行的语法。  语法如下: if(expression) 语句或语句块 else 语句或语句块  第一个“语句或语句块”是当 expression 表达式的结果为真时执行的部分,第二个“语句或语句块”则是结果为假时执行的部分。如果不需要 else 以后的部分,可以省略。 例: if(a==b) inform("a和b相等