【发布时间】:2019-04-02 13:51:39
【问题描述】:
我正在尝试创建一个简单的 c++ 程序,它会打印出 char 是 Y 还是 y、N 还是 n 或两者都不是。
经过调试,我发现 if(chr == 'Y' || 'y') 语句是正确的,即使 char 变量是 'N'。谁能告诉我为什么这个 if 语句是真的而不是假的?
#include "pch.h"
#include <iostream>
using namespace std;
void main()
{
char chr = 'N';
if (chr == 'Y' || 'y')
{
cout << "chr is y" << endl;
}
else if (chr == 'N' || 'n')
{
cout << "chr is n" << endl;
}
else
{
cout << "chr is something else" << endl;
}
}
【问题讨论】:
-
这并不像你认为的那样。请改用
chr == 'Y' || chr == 'y'('n'和'N'类似)。 -
条件
chr == 'Y' || 'y'表示“chr 等于'Y';或'y'。”注意句子第二部分没有比较。你的句子应该是“chr is equal to 'Y'; Or chr is equal to 'y'。” -
另请参阅
std::toupper和std::tolower,因此您只需进行一次比较。
标签: c++ if-statement char equals