亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何退出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 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號