为什么我的其他人经过

时间:2016-09-09 23:32:58

标签: c# if-statement

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

value = 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.这里出了什么问题?

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

如果语法很好但逻辑不正确,那么语法错误也很容易。

使用不同的构造来防止这种情况发生。这是一个例子:

#tap

答案 2 :(得分:0)

尝试只使用一个if和其余的"否则如果"。然后是最后一次使用"否则"。