看板 java 關於我們 聯絡資訊
最近有個邏輯搞不懂 想請教板上的高手大大 題目: 先有個選單 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
TonyQ:草看覺得應該是 money!=0 && list!=3 04/07 17:36
mrker:&&不是AND嗎?這樣要兩個條件都符合不是嗎? 04/07 17:40
mrker:而且那個還不算大問題 重點是跳不出迴圈... 04/07 17:42
JamesPan:如果要money=0 or list=3 while裡要寫money!=0&&list!=3 04/07 18:04
JamesPan:因為當money!=0或list!=3成立時...while才會不成立跳出 04/07 18:06
JamesPan:因為當money=0或list=3成立時...上面說錯 04/07 18:07
TonyQ:因為switch內的break是針對siwtch 區域, 弄個flag 04/07 18:20
TonyQ:在 break 可以正確運做的地方運行就好. :p 04/07 18:21
mrker:喔喔 我了解了 邏輯錯誤(汗) 應該要用&&才對 04/07 19:19
mrker:我最後是在裡面switch加if-else判斷 請問flag要怎麼用?謝謝! 04/07 19:21
slalala::號後面break;之前 04/07 19:27
TonyQ:flag 就是拿個 boolean 在switch裡面設值 , 出 switch 04/08 01:06
TonyQ:在針對該flag的結果進行break與否的判斷.:p 04/08 01:07
mrker:喔喔我大概了解了 boolean比較少用 感謝樓上的高手們解答!! 04/09 16:18