我试图确认用户仅输入“ OZ”或“ G”,并且如果他们输入的响应不是其他任何响应,它将要求他们再次输入。我遇到的问题是,无论例如输入“ G”还是“ OZ”,循环都会继续。
Console.WriteLine("Ounces or Grams? \"Input OZ or G\"");
string userInputType = Console.ReadLine();
while (userInputType != "G" || userInputType != "OZ" || userInputType != "g")
{
Console.WriteLine("You must enter G or OZ for grams or ounces respectively.");
userInputType = Console.ReadLine();
}
|| “ OR”-是一个意思是一个或另一个或另一个的语句。
&&“ AND-是一个表示一个,另一个和其他的语句。
在原始帖子的上下文中,逻辑是检查“ OZ” ||正在传递“ G”字符串。因此,如果一个OR另一个返回True,则无论传入的其他字符串如何,它都是true。
对此的更正是更改||。 “或”为&&“与”。这样做的原因对于初学者/学生来说有点令人困惑,因为本能地将语句读为“当用户输入不等于“ OZ”并且不等于“ G”然后返回true时。”对于初学者/学生,我们希望编译器将其作为一条语句读取。这就是为什么与||混淆的原因发生。
答案 0 :(得分:1)
您必须替换||对于&&
答案 1 :(得分:0)
也许?
Console.WriteLine("Ounces or Grams? \"Input OZ or G\"");
string userInputType = Console.ReadLine();
while(true) {
if (userinputtype=="G" || userinputtype = "OZ") {
break;
}
else {
Console.Writeline("You must enter G or OZ for grams or ounces respectively.");
userInputType = Console.ReadLine();
}
}