使用默认情况 C++ 时,Switch 语句陷入无限循环

僵硬

我最近刚开始学习 C++ 并创建了一个简单的 RPG 游戏来练习。但是我遇到的一个问题是switch语句在使用defaultcase时陷入无限循环

我的代码基本上是这样的:

while (cond)
{
    //Ask user for input 1-4
    cin >> choice;
    switch(choice - 1)
    {
         case 0:
               //Action
               break;
         case 1:
               //Action
               break;
         case 2:
               //Action
               break;
         case 3:
               //Action
               break;
         default:
              cout << "You entered an invalid command. Try again." << endl;
    }
}

最终cond会在敌人HP通过//action情况降到或低于0时变为false

但是,当我输入一个随机密钥时,它会转到默认情况并再次要求用户输入,但会跳过cin >> choice;并在无限循环中再次重播默认情况。

我怎样才能避免这种情况?

威克

您需要清除输入状态,然后忽略无效的垃圾。

default:
    cout << "You entered an invalid command. Try again." << endl;
    cin.clear();
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}

另见,这个答案:为什么我们会在读取输入后调用 cin.clear() 和 cin.ignore()?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中遍历数组时陷入无限循环

来自分类Dev

使用 while 和 continue 时陷入无限循环

来自分类Dev

c外壳陷入无限循环

来自分类Dev

C - 不断陷入无限循环

来自分类Dev

在for和while循环中使用计数的C ++哨兵。陷入无限循环

来自分类Dev

是否可以使用switch语句无限循环?

来自分类Dev

使用Viete公式计算Pi逼近时,陷入ocaml中的无限循环

来自分类Dev

在switch语句中使用默认情况下的继续

来自分类Dev

陷入无限循环和空白检测C ++

来自分类Dev

当UseLayoutRounding =“ True”时,WPF陷入无限循环

来自分类Dev

不使用 return 语句时发生无限循环

来自分类Dev

当我们在switch语句中不使用'break'语句时,为什么在默认值以下的其他情况之前先评估'默认'?

来自分类Dev

尝试打破while循环时陷入无限循环

来自分类Dev

使用switch语句,将默认值设置为更早定义的switch情况?

来自分类Dev

在 switch c# 中调用默认情况

来自分类Dev

在for循环的条件语句中使用vector.size()时发生无限循环

来自分类Dev

JavaScript switch语句仅执行默认情况

来自分类Dev

读取直到C ++中的新行陷入无限循环

来自分类Dev

Sonarqube在查看Java文件时陷入了无限循环

来自分类Dev

fgets在读取/ proc / PID / maps时陷入无限循环

来自分类Dev

Android:onLongClickListener时-陷入无限循环并挂起应用程序

来自分类Dev

尝试插入字符时脚本陷入无限循环

来自分类Dev

当按下按钮时,它会陷入无限循环

来自分类Dev

当默认值不在最后时,在 switch 语句中使用默认值后中断

来自分类Dev

TensorFlow使用tf.while_loop()陷入无限循环

来自分类Dev

MySQL 准备好的语句未使用 C++ 连接器在无限循环中清理

来自分类Dev

Do-While 语句陷入无限循环

来自分类Dev

C ++ switch语句-在情况之间跳转

来自分类Dev

switch 语句中的错误条目如何循环回第一种情况?C++

Related 相关文章

  1. 1

    在C中遍历数组时陷入无限循环

  2. 2

    使用 while 和 continue 时陷入无限循环

  3. 3

    c外壳陷入无限循环

  4. 4

    C - 不断陷入无限循环

  5. 5

    在for和while循环中使用计数的C ++哨兵。陷入无限循环

  6. 6

    是否可以使用switch语句无限循环?

  7. 7

    使用Viete公式计算Pi逼近时,陷入ocaml中的无限循环

  8. 8

    在switch语句中使用默认情况下的继续

  9. 9

    陷入无限循环和空白检测C ++

  10. 10

    当UseLayoutRounding =“ True”时,WPF陷入无限循环

  11. 11

    不使用 return 语句时发生无限循环

  12. 12

    当我们在switch语句中不使用'break'语句时,为什么在默认值以下的其他情况之前先评估'默认'?

  13. 13

    尝试打破while循环时陷入无限循环

  14. 14

    使用switch语句,将默认值设置为更早定义的switch情况?

  15. 15

    在 switch c# 中调用默认情况

  16. 16

    在for循环的条件语句中使用vector.size()时发生无限循环

  17. 17

    JavaScript switch语句仅执行默认情况

  18. 18

    读取直到C ++中的新行陷入无限循环

  19. 19

    Sonarqube在查看Java文件时陷入了无限循环

  20. 20

    fgets在读取/ proc / PID / maps时陷入无限循环

  21. 21

    Android:onLongClickListener时-陷入无限循环并挂起应用程序

  22. 22

    尝试插入字符时脚本陷入无限循环

  23. 23

    当按下按钮时,它会陷入无限循环

  24. 24

    当默认值不在最后时,在 switch 语句中使用默认值后中断

  25. 25

    TensorFlow使用tf.while_loop()陷入无限循环

  26. 26

    MySQL 准备好的语句未使用 C++ 连接器在无限循环中清理

  27. 27

    Do-While 语句陷入无限循环

  28. 28

    C ++ switch语句-在情况之间跳转

  29. 29

    switch 语句中的错误条目如何循环回第一种情况?C++

热门标签

归档