[問題] 關於switch跳出迴圈的問題

看板java作者 (ꬮ....)時間16年前 (2009/04/07 17:32), 編輯推噓5(509)
留言14則, 4人參與, 最新討論串1/1
最近有個邏輯搞不懂 想請教板上的高手大大 題目: 先有個選單 1.進入 2.離開 選1則在進入一個選單選遊戲模式 選2則跳出 選1進入的模式選單: (1)金錢 -1000 (2)金錢 -2000 (3)離開 金錢初始值為5000 當金錢<=0時時則跳回一開始"進入or離開"的選單 選(3)則結束程式 我的大致做法是 while(true) { int money=5000; switch(mode) { case 1: int list=0; do { switch(list) { case 1: money=money-1000; break; case 2: money=money-2000; break; case3: print(離開); break; } } while(money!=0 || list!=3) break; case 2: exit; } } 現在卡在一個地方 就是不管我money=0還是list=3她都會不斷重複裡面的迴圈(list選單) 如果我裡面用System.exit(0); 則會直接結束,而不會跳回一開始"進入or離開"的選單 而且這個判斷式沒辦法分別判斷money=0(跳回一開始選單)或是list=3(直接離開) 請問各位高手,小弟是哪邊觀念錯誤,總覺得do-while的判斷式沒錯阿,謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.233.174

04/07 17:36, , 1F
草看覺得應該是 money!=0 && list!=3
04/07 17:36, 1F

04/07 17:40, , 2F
&&不是AND嗎?這樣要兩個條件都符合不是嗎?
04/07 17:40, 2F

04/07 17:42, , 3F
而且那個還不算大問題 重點是跳不出迴圈...
04/07 17:42, 3F

04/07 18:04, , 4F
如果要money=0 or list=3 while裡要寫money!=0&&list!=3
04/07 18:04, 4F

04/07 18:06, , 5F
因為當money!=0或list!=3成立時...while才會不成立跳出
04/07 18:06, 5F

04/07 18:07, , 6F
因為當money=0或list=3成立時...上面說錯
04/07 18:07, 6F

04/07 18:20, , 7F
因為switch內的break是針對siwtch 區域, 弄個flag
04/07 18:20, 7F

04/07 18:21, , 8F
在 break 可以正確運做的地方運行就好. :p
04/07 18:21, 8F

04/07 19:19, , 9F
喔喔 我了解了 邏輯錯誤(汗) 應該要用&&才對
04/07 19:19, 9F

04/07 19:21, , 10F
我最後是在裡面switch加if-else判斷 請問flag要怎麼用?謝謝!
04/07 19:21, 10F

04/07 19:27, , 11F
:號後面break;之前
04/07 19:27, 11F

04/08 01:06, , 12F
flag 就是拿個 boolean 在switch裡面設值 , 出 switch
04/08 01:06, 12F

04/08 01:07, , 13F
在針對該flag的結果進行break與否的判斷.:p
04/08 01:07, 13F

04/09 16:18, , 14F
喔喔我大概了解了 boolean比較少用 感謝樓上的高手們解答!!
04/09 16:18, 14F
文章代碼(AID): #19snt8N7 (java)