我看到一段代码是使用C++写的,switch + for,如下
enum class MO { A = 0, B, C};
int test(MO m) {
switch (m) {
case MO::A:
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 10; y++) {
//TODO
}
}
if(xxxx){
return -1;
}
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 10; y++) {
//TODO
}
}
break;
case MO::B:
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 10; y++) {
//TODO
}
}
if(xxxx){
return -1;
}
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 10; y++) {
//TODO
}
}
break;
case MO::C:
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 10; y++) {
//TODO
}
}
if(xxxx){
return -1;
}
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 10; y++) {
//TODO
}
}
break;
default:
break;
}
return 0;
}
int main() {
test(MO::A);
return 0;
}
里面有switch,也有双层for,大概结构如上,模拟的伪代码,这样的代码 有没有什么办法优化,它的复杂度太高
导入clang-tidy检查无法通过。用什么办法优化,补充,每个for循环次数里面的内容是不相同的,另外,每个case是两个"双层for",两个“双层for”之间有return函数的语句。