【发布时间】:2017-04-21 14:44:13
【问题描述】:
我有一个switch 语句,其中每个案例都有唯一的代码,以及除默认标签之外的所有案例之间共享的一些代码。
有没有一种在不同案例标签之间共享命令的好方法?
编辑:代码示例
switch (c)
{
case '+':
command.type = ADD;
commands.push_back(command);
break;
case '-':
command.type = SUB;
commands.push_back(command);
break;
case '>':
command.type = INC;
commands.push_back(command);
break;
case '<':
command.type = DEC;
commands.push_back(command);
break;
case '.':
command.type = PUT;
commands.push_back(command);
break;
case ',':
command.type = GET;
commands.push_back(command);
break;
default: break;
【问题讨论】:
-
您也许可以将代码重构为函数。你能分享一个代码示例吗?
-
如果在所有情况下都共享,请将其放在开关之前(或之后)。
-
如果您的意思是对每个 switch 案例执行相同的语句,则 Switch 案例会失败。
-
显示你的代码!
-
把 switch 语句改成这样:
return_type func(container& cmd, const type option /* ADD, SUB, etc. */)
标签: c++ c switch-statement goto