c# - 为什么我的其他人通过

标签 c# if-statement

因此,基本上对于类,我们在用户输入字符串的情况下使用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);

关于c# - 为什么我的其他人通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421034/

相关文章:

c# - 损坏的 MIDI 文件输出

c# - 转换 linq-to-sql 的结果

batch-file - 如何正确使用 IF 和 GOTO 语句

sql oracle in() 子句

python - 如何使用 python ast 模块来分析 if 语句

java - 比较多个字符串时切换大小写与 If, else

batch-file - 我的批处理文件中的用户输入问题

c# - 无法将 NULL 值插入字段 (DateTime)

c# - .NET - 存储应用程序设置的最佳方式

c# - 删除引号内的空格,忽略转义引号