作者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