c#while循环中断

0 c# while-loop

我想知道是否有人可以帮助我.我是编程新手,这是我第一次使用stackoverflow.

我正在寻找创建一个while循环,询问用户的背景,一旦输入正确,就可以打破循环.我可以用break来退出,但我试图找到另一种方式.到目前为止我的代码是:

var background = "";

while (background != "M" || background != "W" || background != "R")
{ 
    Console.WriteLine("Welcome " + name + ", " + "Please pick a class: \n" +
                              "(M)age \n" +
                              "(W)arrior \n" +
                              "(R)ogue \n");
    var readLine = Console.ReadLine();
    if (readLine != null) background = readLine.ToUpper();

    if (background == "M")
    {
        Console.WriteLine("Welcome Mage " + name);            
    }
    else if (background == "W")
    {
        Console.WriteLine("Welcome Warrior " + name);                    
    }
    else if (background == "R")
    {
        Console.WriteLine("Welcome Rogue " + name);
    }
    else
    {
        Console.WriteLine("Invalid choice"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

15e*_*153 5

"||" 是"或".你的while表达总是正确的,因为背景不是"M",或者它不是"W",或者它不是"R" ,这总是正确的.

对于"或",所有三个检查都必须为假,因为整个表达式都是假的,但这些"!="子表达式中至少有两个必须始终为真.如果background是"M",则不能是"W"或"R".

    while (background != "M" || background != "W" || background != "R")
Run Code Online (Sandbox Code Playgroud)

你想要的是"&&",意思是"和":你想继续循环,而背景不是"M" 背景不是"W"等.

    while (background != "M" && background != "W" && background != "R")
Run Code Online (Sandbox Code Playgroud)