【问题标题】:How to use && operator in the case of switch statement? [duplicate]在switch语句的情况下如何使用&&运算符? [复制]
【发布时间】:2019-07-12 15:08:22
【问题描述】:

在switch的情况下如何使用&&?我想将此 if-else 转换为 switch-case。请帮助我,我尝试了很多选项,但没有一个有效。

if( bpay <= 90000 &&  bpay >= 85000 )
{
System.out.println("You Job is General Manager");
}

if( bpay <= 84999 && bpay >= 75000 )
{
 System.out.println("Your Job is Manager" );
}

if ( bpay <= 74999 && bpay >= 65000 )
{
System.out.println("Your Job is Assistant Manager ");
}
if ( bpay <= 64999 && bpay >= 55000 )
{
System.out.println("Your Job is Accoutant");
}
if( bpay <= 54999 && bpay >= 40000 )
{
System.out.println("Your Job is Clerk");
}
if( bpay < 40000 )
System.out.println("You Job is Security Incharge");

【问题讨论】:

  • 简短:你不能!
  • 欢迎来到 Stack Overflow。已经有很多类似的问题了。如果链接的不满足你,请搜索。通常在此处发布新问题之前也这样做。

标签: java android if-statement switch-statement


【解决方案1】:

这在 Java 中是不可能的。 Switch 旨在识别独特的案例。

P.S - 由于您使用的是 android,请尝试使用 Kotlin。 您可以在 kotlin 中使用 when(基本上是 switch but with superpowers)来实现它。 例如:

when(bpay) {
  in 40000..55000 -> println("Your Job is Clerk")
  in 55000..65000 -> println("Your Job is Accoutant")
  //Similarly for the rest
}

【讨论】:

    【解决方案2】:

    你不能。 Java 语言不支持此功能。它可能适用于其他人,但不适用于这里。大小写必须是整数、字符串或枚举。它们不是布尔语句

    【讨论】:

      【解决方案3】:

      Switch-case 不适用于范围,而是适用于完全匹配或常量值。

      因此,您不能将其转换为 switch-case,您必须在此处使用 if-else

      【讨论】:

        【解决方案4】:

        如前所述,这是不可能的。而是使用if-else-if:

        if ( bpay <= 90000 &&  bpay >= 85000 ) {
            System.out.println("You Job is General Manager");
        } else if( bpay <= 84999 && bpay >= 75000 ) {
            System.out.println("Your Job is Manager" );
        } else if ( bpay <= 74999 && bpay >= 65000 ) {
            System.out.println("Your Job is Assistant Manager ");
        } else if ( bpay <= 64999 && bpay >= 55000 ) {
            System.out.println("Your Job is Accoutant");
        } else if( bpay <= 54999 && bpay >= 40000 ) {
            System.out.println("Your Job is Clerk");
        } else if( bpay < 40000 ) {
            System.out.println("You Job is Security Incharge");
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-05
          • 1970-01-01
          • 2013-11-25
          • 2020-03-03
          • 2014-09-08
          • 1970-01-01
          相关资源
          最近更新 更多