Java交换机不支持';我拿不到合适的箱子

Java交换机不支持';我拿不到合适的箱子,java,oop,switch-statement,Java,Oop,Switch Statement,所以我会有一个这样的代码 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会告诉我:“我是你的私人助理‘好友’” 但是它应该给我“你好” 你知道为什么会发生这种情况吗?你的代码不能工作的

所以我会有一个这样的代码

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会告诉我:
“我是你的私人助理‘好友’”

但是它应该给我“你好”


你知道为什么会发生这种情况吗?

你的代码不能工作的原因是因为你忘记关闭带有中断的case语句。因此,在您的例子中,“out”变量首先被赋值为Hello,然后被赋值**我是您的个人助理“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;
          }

您忘记添加中断语句重复的链接不准确,但接受的答案正确地解释了您看到的内容。如果有人有更好的链接,请随意编辑。您可以在第一个
案例
语句中输入,但由于您忘记了
中断
语句,您可以在第二个
案例
语句中输入。最后,
out
包含第二个字符串。堆栈溢出时不建议使用仅代码的答案。因此,请编辑您的答案,并解释它的作用和使用原因。您的代码缺少结尾}(,默认语句)和解释