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

Java中的开关:我可以在案例中包含条件吗?[副本]

武嘉祥
2023-03-14

这是我的代码

switch(age) {
    case 10:
        System.out.println("You are too young to drive.");
        break;
    case 20:
        System.out.println("You can drive!");
        break;
    default:
        System.out.println("Error");
}

如果年龄是15岁会发生什么?嗯,它给了我一个错误。所以我想知道是否有可能在案例中包含一个条件。例如,

case (age>=10 && age<=20):
   System.out.println("You're still too young to drive...");
   break;

我可以使用if语句,但我想知道是否可以使用开关。

共有3个答案

冀弘厚
2023-03-14

不,Java你不能这样做。改用if语句。类似于您想要的结构存在于Scala等其他语言中。

姚正真
2023-03-14

由于“跌破”,您可以这样做:

switch(age){
    case 10:  
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
        System.out.println("You are too young to drive.");
        break;  
    case 20:
        System.out.println("You can drive!");
        break;
    default:
        System.out.println("Error");
}

这是一个多一点的代码,但它完成了同样的事情。

南宫博简
2023-03-14

不可能,因为大小写必须是常量表达式。但是您可以(正如您所猜测的)使用if。从逻辑上讲,任何20岁以下的人(假设这是法定年龄)都太年轻而不能开车。

final int drivingAge = 20;
if (age < drivingAge) {
    System.out.printf("%d is too young to drive...%n", age);
} else {
    System.out.printf("%d is old enough to drive.%n", age);
}

可以用以下代码编写:conditional operator(又名三元表达式;注意,有些人觉得三元很难读懂)如下

final int drivingAge = 20;
System.out.printf(age < drivingAge ? "%d is too young to drive...%n"
        : "%d is old enough to drive.%n", age);
 类似资料:
  • 在C语言中,不能在“case”语句中声明任何变量。 但是,当您与花括号一起使用时,您可以使用。 在Javascript案例中,我可以直接在案例语句内部使用var吗? 似乎没有错误,但我不相信这是语法上的OK。

  • 问题内容: 在我的程序中,我多次从控制台读取整数。每次,我都需要输入这一行。 我习惯了C / C ++,我想知道是否可以定义类似 然后,在我的Java程序中的每个地方,我都可以将表单控制台读取为 但是我读过形式书籍Java不支持宏。 有人请向我解释为什么会这样,我可以用其他任何方式做到这一点。 问题答案: 您 可以, 但 不可以 。 该 不该 部分: 您 不应该这样做, 因为以这种方式使用预处理器

  • 问题内容: 我想创建一个PHP类,可以说Myclass.php。现在在该类中,我只想定义类本身和一些实例变量。但是所有方法都必须来自Myclass_methods.php文件。我可以只将该文件包含到班级正文中吗? 我有充分的理由为什么要分开这个。简而言之,我将拥有一个后端,在其中可以更改类的业务逻辑,而所有其他内容必须保持不变。系统为我维护所有ORM和其他内容。 但是,如果这不是一个好主意,则最好

  • 问题内容: 我们正在从数据库中获取属性(我们无法影响),并希望通过键/值映射来访问它们。我们面临的问题是,其中一个属性键包含一个空白字符。 正确解释如下 有没有办法在键中包含空格,以便不将其解释为定界符?我猜这种行为就像预期的那样,但是我认为我可以在这里尝试一下。 问题答案: 看起来分隔符应该是,而不是空格。因此- 应该做。 如果要从Java 文件加载此文件,则可以扩展和覆盖此方法 以便它正确解析

  • 现在假设我有项目B,我们叫它酒吧。Bar是一个Android应用程序,Bar依赖于Foo。 嗯,我有。但是,当我在Foo from Bar中调用一个调用OkHttp的函数时,我会得到以下消息: 这样的事情可能发生吗?还是Bar需要手动依赖OkHttp以及Foo拥有的任何其他依赖项?