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