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