如果语句返回true,则应为false

时间:2019-05-12 20:06:50

标签: c# validation

我是一名学习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。

1 个答案:

答案 0 :(得分:0)

您这里需要一个&&条件,而不是||。您可以使用System.Linq All()这样的方法来简化此操作

if(new[] {"SciFi", "Fantasy", "Horror", "Action"}.All(x => x != genreSelection))