虽然循环不断重复

son*_*ool 0 c++ while-loop switch-statement

我设置了一个while循环,我想选择r或h,我不想使用forloops但我想使用开关为什么当我输入r或h时它会不断重复该案件的cout百万次?我不能只说一次..

while (chooseMove == 'r' or 'h')
{
    switch (chooseMove) 
    {
    case 'r':
            cout << "you chose r";

        break;
    case 'h':
        cout << "you chose h";
        break;
    }




} 
Run Code Online (Sandbox Code Playgroud)

我也试过forloops并遇到了同样的问题,我无法弄明白

Ker*_* SB 5

你的意思是while (chooseMove == 'r' or chooseMove == 'h').你目前所写的内容相当于((chooseMove == 'r') or ('h')),并'h'评估为true.


也许你也在寻求输入逻辑的帮助:

char c;
bool success = false;

while (std::in >> c)
{
  switch(c) {
    case 'r': /* ... */ success = true; break;
    case 'h': /* ... */ success = true; break;
  }

  if (success) break;
}
Run Code Online (Sandbox Code Playgroud)

如果输入流已关闭,这也将终止,您可以使用它success来检查操作是否成功.

  • '或'真的是C++运算符吗? (4认同)