我是一名学习C#的学生,这是我在这里的第一篇文章。
我正在使用带有if语句的while循环进行验证,如果输入正确的输入后if语句应该为false,则if语句将返回true。我的突破点不是在告诉我发生了什么-有人对我的失踪有任何建议吗?
var genreSelection = Console.ReadLine();
bool invalidGenre = true;
while(invalidGenre == true)
{
if (genreSelection != "SciFi" || genreSelection != "Fantasy" || genreSelection != "Horror" || genreSelection != "Action")
{
Console.WriteLine("That is not a valid selection, please choose either SciFi, Fantasy, Horror, or Action.");
genreSelection = Console.ReadLine();
}
else
{
invalidGenre = false;
}
}
测试此循环,我最初输入的输入不正确,然后在出现提示时输入正确的输入。如果我希望否则,if语句仍然会触发而不是继续进行else并将invalidGenre
设置为false。
答案 0 :(得分:0)
您这里需要一个&&
条件,而不是||
。您可以使用System.Linq
All()
这样的方法来简化此操作
if(new[] {"SciFi", "Fantasy", "Horror", "Action"}.All(x => x != genreSelection))