为什么我的其他人经过

j d*_*doe 1 c# if-statement

所以基本上对于类我们使用if else,其中用户输入一个字符串,如果该字符串是正确的,我们为特定变量赋值.我的代码似乎很好,但出于某种原因,当我运行它并使用完全字符串测试程序运行if并转到else,并打印else,即使我们的if是真的.这是我的代码:(我在开始时初始化了所有变量,但这里没有包含它们.

value = Console.ReadLine();

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

Console.WriteLine(number1);
Run Code Online (Sandbox Code Playgroud)

所以基本上如果我输入ATX或XTS我得到number1 = 0,但是如果我做了CTS那么number1 = 2.这里出了什么问题?

Shy*_*yju 7

实际上当你通过"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);
Run Code Online (Sandbox Code Playgroud)