我的其他如果声明不正常,问题是什么?

时间:2018-01-17 13:36:52

标签: c# if-statement conditional

我是C#的新手,并且理解if语句是如何工作的我编写了这些代码但是它似乎有问题。当我写的是50或更大且小于60的东西时它表示Passed但是else if语句不管怎么样。每当我写出更大的东西,然后我的程序就会关闭。

        Console.WriteLine("Please state your marks........");
        string uservalue = Console.ReadLine();
        int x = Convert.ToInt32(uservalue);

        if (x >=50)
        {
            if ( x <= 59)
            {
            Console.WriteLine("You Passed");
            }
        }
        else if (x >=60)
        {
            Console.WriteLine("Passed Grade B");
        }
        Console.ReadLine();

5 个答案:

答案 0 :(得分:4)

    ...
    if (x >= 50 && x < 60) {
        Console.WriteLine("You Passed");
    }
    else if (x >= 60) {
        Console.WriteLine("Passed Grade B");
    }
    Console.ReadLine();
    ...

答案 1 :(得分:3)

if (x >= 50)的条件比if (x >= 60)弱。这意味着如果前者是true,那么程序控制从不考虑(x >= 60)的情况。

此处的解决方案是首先处理(x >= 60)案例。

答案 2 :(得分:1)

您应该交换条件,代码应如下所示,并且不需要额外条件检查&lt; = 59:

    Console.WriteLine("Please state your marks........");
    string uservalue = Console.ReadLine();
    int x = Convert.ToInt32(uservalue);

    if (x >=60)
    {
        Console.WriteLine("Passed Grade B");
    }
    else if (x >=50)
    {            
        Console.WriteLine("You Passed");            
    }

    Console.ReadLine();

答案 3 :(得分:1)

首先,我建议您使用int.TryParse而不是Convert.ToInt32,因为用户可能会输入非整数值。并修复if条件;

string uservalue = Console.ReadLine();
int x;
if(!int.TryParse(uservalue,out x))
{
    Console.WriteLine("Invalid Input ! ");
    Console.ReadLine();
    return;
}
if (x >= 50 && x < 60)
{
    Console.WriteLine("You Passed");
}
else if (x >= 60)
{
    Console.WriteLine("Passed Grade B");
}

答案 4 :(得分:0)

添加到您的第一个if语句&amp;&amp; x&lt; 60。 它应该看起来像if (x >=50 && x < 60)