为了账号安全,请及时绑定邮箱和手机立即绑定

如何退出foreach循环?哪个使用枚举数据

如何退出foreach循环?哪个使用枚举数据

呼唤远方 2022-05-21 13:44:05
我想实现一个有关卡的游戏,在赢得当前关卡后,用户可以解决另一个问题。我使用枚举数据为每个循环做到了这一点。如果您有其他解决此问题的方法,请与我分享。程序在用户做出正确决定后已经改变了级别,但我想实现如果用户提供错误答案,它会退出主循环。我试图通过break运营商解决它,但它不起作用。如果您对此问题有其他解决方案,请与我分享。static void levelchanger() {    Levelinfo[] types = Levelinfo.values();    for (Levelinfo arr : types) {        while (arr.moves != 0 && arr.display != arr.goal) {            System.out.println("It is " + arr + " level. You have: " + arr.moves + " moves. Goal: " + arr.goal);            System.out.println("Step: 1) " + arr.gnumbers[0] + " 2) " + arr.gnumbers[1]);            Scanner in = new Scanner(System.in);            int action = in.nextInt();            switch (action) {            case 1:                arr.display += arr.gnumbers[0];                System.out.println("Result: " + arr.display);                break;            case 2:                arr.display += arr.gnumbers[1];                System.out.println("Result: " + arr.display);                break;            }            arr.moves--;            if (arr.moves == 0 && arr.display != arr.goal) {                System.out.println("You don't have more moves!");                break;            } else if (arr.display == arr.goal) {                System.out.println("Alright! Next level");            }        }    }}
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

在循环中添加标签


a: for (;;)

   {

     while()

     {

      if(condition)

        break a;// at your condition  write like this

     }


   }


查看完整回答
反对 回复 2022-05-21
?
跃然一笑

TA贡献1826条经验 获得超6个赞

break语句只会跳出当前循环。

您可以将 break 更改为 areturn如果在 之后没有其他操作for,或者重组代码以使用较小的方法,这样您就可以避免在一个方法中嵌套太多。

您还可以添加一个设置为 false 的布尔变量,并在 for 循环中进行检查,但可能会使代码更脏。


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 238 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号