我知道这可能真的很愚蠢,但我不明白为什么这个 if 语句失败了:
如果我在控制台输入1
或输入2
,则第一个 if 语句失败,但如果我首先将结果存储在 bool 中,则第二个语句通过。为什么?我可能在这里做一些愚蠢的事情?
Console.WriteLine("Enter 1 for AM or 2 for PM?");
string amOrPM = Console.ReadLine();
//Why does this fail if I enter 1 or 2?
if (amOrPM != "1" || amOrPM != "2")
Console.WriteLine("You must enter 1 for AM or 2 for PM. Try again.");
//This works!
bool valid = (amOrPM != "1" || amOrPM != "2");
if (!valid)
Console.WriteLine("You must enter 1 for AM or 2 for PM. Try again.");
我刚刚注意到第一个 if 语句,我必须放 && 而不是 ||,但这很令人困惑,因为我将其读作:如果amOrPm
不等于1
或amOrPM
不等于2
,则转到控制台行。我在阅读这个错误的定义吗?