【问题标题】:Checking if value equals either a or b检查 value 是否等于 a 或 b
【发布时间】:2018-01-19 02:50:26
【问题描述】:

我试图让用户能够控制他们何时想要退出 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;

【问题讨论】:

标签: c++ if-statement


【解决方案1】:

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

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

你需要的是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多