优化下段代码void caozuo(unsigned int c) { n = 0; switch (key) { case 0: { n = n * 10 + 1; shuzi(n); break; } case 1: { n = n * 10 + 2; shuzi(n); break; } case 2: { n = n * 10 + 3; shuzi(n); break; } case 3: { jisuan(); flag = '+'; break; } case 4: { n = n * 10 + 4; shuzi(n); break; } case 5: { n = n * 10 + 5; shuzi(n); break; } case 6: { n = n * 10 + 6; shuzi(n); break; } case 7: { jisuan(); flag = '-'; break; } case 8: { n = n * 10 + 7; shuzi(n); break; } case 9: n = n * 10 + 8; shuzi(n); break; case 10: { n = n * 10 + 9; shuzi(n); break; } case 11: { jisuan(); flag = '*'; break; } case 12: { n = n * 10 + 0; shuzi(n); break; } case 13: { for (i = 0; i < 4; i++) DispBuf[i] = 0; temp = 0; flag = ' '; n = 0; break; } case 14: { jisuan(); break; } case 15: { jisuan(); flag = '/'; break; } default: break; } }
时间: 2024-02-14 15:12:33 浏览: 135
你的代码中存在大量重复的代码,可以进行优化。你可以通过将相似的代码段提取出来,减少代码的冗余,提高代码的可读性和可维护性。你可以将数字和操作符的处理分开,如下所示:
```
void caozuo(unsigned int c) {
switch (key) {
case 0 ... 2: // 处理数字
n = n * 10 + (key + 1);
shuzi(n);
break;
case 3: // 处理加号
jisuan();
flag = '+';
break;
case 4 ... 6: // 处理数字
n = n * 10 + (key - 1);
shuzi(n);
break;
case 7: // 处理减号
jisuan();
flag = '-';
break;
case 8 ... 10: // 处理数字
n = n * 10 + (key - 2);
shuzi(n);
break;
case 11: // 处理乘号
jisuan();
flag = '*';
break;
case 12: // 处理数字
n = n * 10;
shuzi(n);
break;
case 13: // 处理清除
for (i = 0; i < 4; i++)
DispBuf[i] = 0;
temp = 0;
flag = ' ';
n = 0;
break;
case 14: // 处理等号
jisuan();
break;
case 15: // 处理除号
jisuan();
flag = '/';
break;
default:
break;
}
}
```
另外,你可以考虑使用枚举类型来定义不同的操作符,提高代码的可读性和可维护性。
阅读全文