所以基本上对于类我们使用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.这里出了什么问题?
答案 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和其余的"否则如果"。然后是最后一次使用"否则"。