“if else”中的 break 语句 - java

新手上路,请多包涵

我不断收到错误 if 没有 else

我也试过 else if

 for (;;){
        System.out.println("---> Your choice: ");
        choice = input.nextInt();
        if (choice==1)
            playGame();
        if (choice==2)
            loadGame();
        if (choice==3)
            options();
        if (choice==4)
            credits();
        if (choice==5)
            System.out.println("End of Game\n Thank you for playing with us!");
            break;
        else
            System.out.println("Not a valid choice!\n Please try again...\n");=[;'mm
    }

另外,如果您对如何呈现此代码有更好的想法,请不要犹豫:)

原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 662
2 个回答

因为您的 else 没有附加任何东西。不带大括号的 if 仅包含紧随其后的单个语句。

 if (choice==5)
{
    System.out.println("End of Game\n Thank you for playing with us!");
    break;
}
else
{
   System.out.println("Not a valid choice!\n Please try again...\n");
}

不使用大括号通常被视为一种不好的做法,因为它会导致您遇到的确切问题。

此外,在这里使用 switch 会更有意义。

 int choice;
boolean keepGoing = true;
while(keepGoing)
{
    System.out.println("---> Your choice: ");
    choice = input.nextInt();
    switch(choice)
    {
        case 1:
            playGame();
            break;
        case 2:
            loadGame();
            break;
        // your other cases
        // ...
        case 5:
            System.out.println("End of Game\n Thank you for playing with us!");
            keepGoing = false;
            break;
        default:
            System.out.println("Not a valid choice!\n Please try again...\n");
     }
 }

请注意,我使用的不是无限 for 循环 while(boolean) ,这样可以轻松退出循环。另一种方法是使用带标签的中断。

原文由 Brian Roach 发布,翻译遵循 CC BY-SA 3.0 许可协议

“break”命令在“if”语句中不起作用。

如果您从代码中删除“break”命令,然后测试代码,您应该会发现代码在没有“break”命令的情况下与在没有“break”命令的情况下完全一样。

“Break”设计用于内部循环(for、while、do-while、enhanced for 和 switch)。

原文由 Alan J. Robinson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题