作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做我的学校项目,想知道是否可以通过替换使我的代码看起来更干净:
switch (screen) {
case 0:
switch (language) {
case 0:
std::cout << "1 - Start new game" << std::endl;
std::cout << "2 - Load save" << std::endl;
std::cout << "2 - Hall of fame" << std::endl;
std::cout << "3 - Select language" << std::endl;
std::cout << "h - Help" << std::endl;
break;
case 1:
std::cout << "1 - Zacznij nową grę" << std::endl;
std::cout << "2 - Wczytaj grę" << std::endl;
std::cout << "2 - sala sławy" << std::endl;
std::cout << "3 - wybierz język" << std::endl;
std::cout << "h - pomoc" << std::endl;
break;
}
break;
}
通过这样的方式:
switch (screen)(language) {
case 0 0:
std::cout << "1 - Start new game" << std::endl;
std::cout << "2 - Load save" << std::endl;
std::cout << "2 - Hall of fame" << std::endl;
std::cout << "3 - Select language" << std::endl;
std::cout << "h - Help" << std::endl;
break;
case 0 1:
std::cout << "1 - Zacznij nową grę" << std::endl;
std::cout << "2 - Wczytaj grę" << std::endl;
std::cout << "2 - sala sławy" << std::endl;
std::cout << "3 - wybierz język" << std::endl;
std::cout << "h - pomoc" << std::endl;
break;
}
在c++中有这样的结构吗?我尝试用谷歌搜索它,但无论措辞如何,我都找不到任何东西。
最佳答案
我不建议将它用于此类事情 - 有比使用 switch 进行本地化或菜单更好的方法 - 代码应该做一件事,但要将两个值组合为一个,您可以使用移位的按位运算在这种情况下,由整个半字节然后是十六进制文字:
switch ((screen << 4) | language) {
case 0x00:
std::cout << "1 - Start new game" << std::endl;
std::cout << "2 - Load save" << std::endl;
std::cout << "2 - Hall of fame" << std::endl;
std::cout << "3 - Select language" << std::endl;
std::cout << "h - Help" << std::endl;
break;
case 0x01:
std::cout << "1 - Zacznij nową grę" << std::endl;
std::cout << "2 - Wczytaj grę" << std::endl;
std::cout << "2 - sala sławy" << std::endl;
std::cout << "3 - wybierz język" << std::endl;
std::cout << "h - pomoc" << std::endl;
break;
case 0x10:
// screen 1 language 0
break;
case 0x11:
// screen 1 language 1
break;
}
break;
}
我不会在应用程序中使用它,而是将它用于较低级别的东西,例如组合多个旋转编码器传感器位的输出和先前的状态以确定旋转方向。
关于c++ - 有没有办法让开关检查2个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72303421/
我是一名优秀的程序员,十分优秀!