spl*_*hrt 5 c++ loops switch-statement
我在switch()语句中处理了很多情况,并且想知道是否有任何可能的方式可以缩短这些情况。它们在我的代码中占用了很多空间,并且当这些语句有3-4个大块时,很难导航。这是一个例子:
...important lines of code...
void foo(string bar, bool blam) {
int v1 = stoi(bar);
switch (v1) {
case(11):
if(blam) {
exArr[1] = "A";
} else {
exArr[1] = "B";
}
break;
case(12):
if(blam) {
exArr[3] = "A";
} else {
exArr[3] = "B";
}
break;
...many more cases...
default:
printElement();
break;
}
...even more important code, which is dependent on the hard code above and hard to navigate...
Run Code Online (Sandbox Code Playgroud)
我认为您看到了问题。你们有什么建议吗?提前致谢。
重要编辑:
仅前12次迭代会更改exArr的字符。之后,它将更改为另一个(现有的)数组,例如ndArr,需要另外12次迭代。这种情况适用于4个数组,因此大约有48个case语句。
假设后续情况之间的关系v1以同样的方式继续,则不需要切换:
const int v1{stoi(bar)};
if (11 <= v1 && v1 <= ...)
exArr[1 + (v1 - 11) * 2] = blam ? "A" : "B";
else
printElement();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |