0

我有一个 switch 语句:

swtich(x)
{
    case 1:
           ...
           break;
    case 2:
           ...
           break;
}

我想把...代码放在一个函数中,但我也想把 break... 所以我想要这样的东西

void func()
{
     ...;
     break;
}

swtich(x)
{
    case 1:
           func();
    case 2:
           func();
}

Break 给出错误(我知道为什么)但我能做什么?

4

4 回答 4

2

你不能。你能做的最好的事情是:

swtich(x)
{
    case 1:
           func();
           break;
    case 2:
           func();
           break;
}

有关break 用途的讨论,请参见此处:

break 语句终止它出现的最近的封闭循环或 switch 语句。控制权被传递给终止语句之后的语句(如果有)。

如果你把它放在一个函数中,它怎么知道它应该应用于哪个循环或 switch 语句?

于 2012-11-27T19:05:19.227 回答
2

你不能把它break放在另一种方法中。

虽然如果你想做同样case 1case 2事情,这是合法的:

switch (x)
{
    case 1:
    case 2:
        func();
        break;
}
于 2012-11-27T19:07:33.343 回答
2

正如其他人所说,这是不可能的。这样看,如果执行到该行时您不在 switch 语句中,预期的行为会是什么break;

break;语句放在函数调用之后。如果您希望函数在给定条件下停止执行,请使用该return;语句。

于 2012-11-27T19:08:11.270 回答
1

不要在函数中放置中断。干净利落。

switch(x)
{
    case 1:
           func();
           break;
    case 2:
           func();
           break;
}
于 2012-11-27T19:05:45.980 回答