gpt4 book ai didi

c++ - 有没有办法让开关检查2个参数?

转载 作者:行者123 更新时间:2023-12-05 00:51:18 28 4
gpt4 key购买 nike

我正在做我的学校项目,想知道是否可以通过替换使我的代码看起来更干净:

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com