【问题标题】:Java Switch Doesn't get the right case [duplicate]Java Switch没有得到正确的案例[重复]
【发布时间】:2018-07-03 13:37:21
【问题描述】:

所以我会有这样的代码

switch (in) {
case "Hi":
  out = "Hello"
case "Who are you":
  out = "I am your personal Assistant 'Buddy'"
}
return out;

我会在另一堂课上

System.out.println(getAnwser(in));

所以我会 Hi 和 switch 会给我:"I am your personal Assistant 'Buddy' "

但它应该给我"Hello"

知道为什么会这样吗?

【问题讨论】:

  • 您忘记添加中断语句
  • 重复链接不是精确,但接受的答案正确地解释了您所看到的。如果有人有更好的链接,请随时编辑。
  • 您输入了第一个 case 语句,但由于您忘记了 break 语句,因此您输入了第二个 case 语句。最后,out 包含第二个字符串。

标签: java oop switch-statement


【解决方案1】:

您的代码无法正常工作的原因是您忘记用中断结束 case 语句。因此,在您的情况下,首先分配“out”变量 Hello 然后分配它 **I am your personal Assistant 'Buddy' ** 因为没有什么能阻止编译器这样做。因此,您应该使用break。编辑代码:

switch(in){
        case "Hi":
            out = "Hello";
            // add a break here to escape the switch statement
            break;
        case "Who are you":
            out = "I am your personal Assistant 'Buddy'";
            // always add a break, always...
            break;

            return out;
          }

【讨论】:

  • 不鼓励在 Stack Overflow 上只回答代码。所以请编辑你的答案并解释它的作用以及为什么应该使用它
  • 您的代码缺少结束 }(默认语句)和解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2017-10-24
相关资源
最近更新 更多