检查值是否等于 a 或 b

Checking if value equals either a or b

本文关键字:是否 检查      更新时间:2023-10-16

我试图让用户能够控制他们何时想要退出while循环,而且我想知道如何在完成后退出程序

    cout<<"Play again? (Y/N)"<<endl;
char userInput;
cin>>userInput;
if (userInput='y'|'Y')
{
   cin.clear();
   cin.ignore();
   input();
   userInput=0;
}

else
{
    exit(0);
}
return 0;

表达式userInput='y'|'Y'遭受三个基本问题和一个复合问题。

  1. 'y'|'Y'不是逻辑 OR 操作。这是一个按位 OR 运算。
  2. 它不会将userInput的值与'y''Y'进行比较。
  3. 它将子表达式'y'|'Y'的值分配给userInput ,该子表达式的计算结果是使用 ASCII 编码的系统中的整数值 121。
  4. 因此,if语句的条件始终计算为 true

您需要的是:

if ( userInput == 'y' || userInput == 'Y' )