c++ - c++ switch 语句 - 在 case 之间跳转
问题描述
在 C++ 中,我可以执行以下代码吗?
在特定情况下,如果满足某些条件,我可以跳转到另一个案例吗?
switch (tag) {
case 1: {
// do something
break;
}
case 2: {
if(){
//can I somehow jump to case 1?
}
break;
}
}
解决方案
不,不是。你能得到的最接近的东西是有条件的失败。
switch (tag) {
case 2: {
// Do things that need to be done for case 2
if(someCondition){
// if the condition was met, we stop here
// and don't execute case 1!
break;
}
// no break at the end, so we fall through to case 1
}
case 1: {
// do something
break;
}
}
但这很快就会变得非常混乱并且也非常有限,imo更好的解决方案是为每个任务编写一个函数,并且只使用每个案例来调用适当的函数。
不,goto
这是一个非常糟糕的主意,不,你甚至不应该考虑使用它;)
推荐阅读
- mongoose - 使用 mongoose 和 nestjs 进行分页
- laravel - Laravel 8x:phpunit 预期状态码 204 但收到 429。未能断言 204 与 429 相同
- google-cloud-platform - 带有 Google Kubernetes Engine (GKE) 的 Google Cloud API 网关
- python - string.unpack(' 是什么意思?
nmap
我在脚本中调试了一行并得到了这个:local target_info = '\x02\x00\x1a\x00W\x00I\x00N\x00S\x00E\x00R\x00V\x00E\x00R\x002\x000\x001\x002\x00\x01\x
- c++ - Winsock2:重叠 IO 的发送缓冲区大小的影响
- json - 我怎样才能投出飞镖图
到 >>? - react-native - React-Native 中的 DocumentPicker 在 Android 设备上无法正常工作
- hashmap - 是否有允许搜索一系列键的 julia 结构?
- reactjs - 用 Jest 模拟常量不起作用(同一测试文件中的多个模拟)
- python - 这是从数据库中打开对象以相同形式进行编辑,然后使用 django 保存同一对象的更新值的正确方法吗?