作者lineage90160 (lineage90160)
看板C_Sharp
標題[問題] 關於這個switch迴圈
時間Wed May 14 16:08:25 2008
private void timer1_Tick(object sender, EventArgs e)
{
switch (counter)
{
case 1:
pictureBox2.Visible = false;
pictureBox1.Visible = pictureBox3.Visible = true;
pictureBox5.Visible = false;
pictureBox4.Visible = pictureBox6.Visible = true;
break;
case 2:
pictureBox2.Visible = false;
pictureBox3.Visible = pictureBox3.Visible = true;
pictureBox6.Visible = false;
pictureBox4.Visible = pictureBox1.Visible = true;
break;
default:
counter = (counter + 1) % 3;
}
出現以下錯誤
-----> 程式執行無法從 case 標籤 ('default:')繼續到下一個
在default敘述式後加入break; 就可以跑了,但是執行一次case1就不繼續跑了
問題出在哪?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.154.49
1F:→ KENyroj:case 1 跑完 整個 switch 就結束了 不是很正常嗎?? 05/14 16:50
2F:→ O2000:因為counter一直是1 default是沒有符合的case才會run的 05/14 16:53
3F:→ KojIrOQQ:switch 又不是迴圈 @@ 05/14 17:26
4F:→ O2000:看方法名稱 我是猜這一段是用timer跑 05/14 17:36
5F:→ O2000:然後要問的是為什麼只會執行case 1裡面的部份 05/14 17:37
6F:→ KENyroj:如果要所有的 case 包括 default 都要跑, 那就是不寫break 05/14 18:23
7F:→ KENyroj:那他用 switch 就很奇怪了... 囧 05/14 18:24
8F:→ lineage90160:不寫break會出現錯誤程式執行無法從 case 標籤.... 05/14 21:33
9F:→ hamsters:是想要每次都執行 default: 嗎? 05/14 23:09
10F:→ hamsters:是的話就把 default 要做的事搬到 switch 區塊後面就好了 05/14 23:10
11F:→ hamsters:不然就把 case: 裡的 break; 改成 goto default; 05/14 23:12
12F:推 abcf:強烈建議別用GOTO,書上好像寫違反物件導向什麼的 05/21 01:14