看板 C_Sharp 關於我們 聯絡資訊
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
KENyroj:case 1 跑完 整個 switch 就結束了 不是很正常嗎?? 05/14 16:50
O2000:因為counter一直是1 default是沒有符合的case才會run的 05/14 16:53
KojIrOQQ:switch 又不是迴圈 @@ 05/14 17:26
O2000:看方法名稱 我是猜這一段是用timer跑 05/14 17:36
O2000:然後要問的是為什麼只會執行case 1裡面的部份 05/14 17:37
KENyroj:如果要所有的 case 包括 default 都要跑, 那就是不寫break 05/14 18:23
KENyroj:那他用 switch 就很奇怪了... 囧 05/14 18:24
lineage90160:不寫break會出現錯誤程式執行無法從 case 標籤.... 05/14 21:33
hamsters:是想要每次都執行 default: 嗎? 05/14 23:09
hamsters:是的話就把 default 要做的事搬到 switch 區塊後面就好了 05/14 23:10
hamsters:不然就把 case: 裡的 break; 改成 goto default; 05/14 23:12
abcf:強烈建議別用GOTO,書上好像寫違反物件導向什麼的 05/21 01:14