因此,基本上对于类,我们在用户输入字符串的情况下使用if字符串,如果该字符串正确,我们将为特定变量分配一个值。我的代码似乎很好,但是由于某些原因,当我运行它并使用确切的字符串进行测试时,程序将遍历if并转到else,并打印else,即使我们的if为true。这是我的代码:(我在一开始就初始化了所有变量,此处未包含它们。

值= Console.ReadLine();

        if (value == "ATX")
        {
            number1 = 3;
        }
        if (value == "XTS")
        {
            number1 = 34;
        }
        if (value == "CTS")
        {
            number1 = 2;
        }
        else
        {
         number1 = 0;
        }

Console.WriteLine(number1);


所以基本上,如果我输入ATX或XTS,则得到number1 = 0,但是如果我进行CTS,则得到number1 =2。这是怎么回事?

最佳答案

实际上,当您传递"ATX""XTS"时,您的代码会将number1变量的值设置为“ 3”或“ 34”。但是,您将使用最后一个number1再次覆盖if-else变量的值。块。

始终使用else if

if (value == "ATX")
{
    number1 = 3;
}
else if (value == "XTS")
{
    number1 = 34;
}
else if (value == "CTS")
{
    number1 = 2;
}
else
{
    number1 = 0;
}
Console.WriteLine(number1);

10-08 16:04