基本的c#if语句查询

时间:2016-07-27 13:36:47

标签: c# if-statement

我需要输入3个数字,然后输出最高&使用IF命令的3个数字中最低的。我有一切正常,除了我得到1个最大数字(正确)和3个最低数字的输出(不正确)。现在我完全理解为什么他们全部被显示,我只是不知道如何解决它。一旦整数由用户输入定义,我的代码如下:

if (num1 > num2 && num1 > num3)
{
    Console.WriteLine("Largest Number: " + num1);
}

if (num2 > num3)
{
    Console.WriteLine("Smallest Number: " + num3);
}
else
{
    Console.WriteLine("Smallest Number: " + num2);
}

然后重复3次,切换各自的整数。我理解问题是什么,第二个if命令对于所有3个场景都是正确的。我只是......不知道如何解决它。我觉得我只需要以某种方式加入这两个if语句,但我不确定如何做到这一点,或者它是否可能。

3 个答案:

答案 0 :(得分:3)

在许多情况下,您可以,而且必须嵌套块。 这样,只有在第一个被评估为真时才会评估第二个if。

if (num1 > num2 && num1 > num3)
{
    Console.WriteLine("Largest Number: " + num1);

    if (num2 > num3)
    {
    Console.WriteLine("Smallest Number: " + num3);
    }
    else
    {
        Console.WriteLine("Smallest Number: " + num2);
    }
}

这只是为了回答您最直接的问题,即显示的次数最多不止一次。

您可能会遇到其他人,例如,正如其他人所提到的:如果两个数字相等会怎么样?

答案 1 :(得分:2)

要获得最大/最低的最佳方法是使用变量来存储当前的最大值/最小值,而不是检查每个案例(置换)。

这样的东西
    int largest = int.MinValue;
    int smallest = int.MaxValue;

    if (num1 > largest)
        largest = num1;
    if (num2 > largest)
        largest = num2;
    if (num3 > largest)
        largest = num3;

    if (num1 < smallest)
        smallest = num1;
    if (num2 < smallest)
        smallest = num2;
    if (num3 < smallest)
        smallest = num3;

//output largest/smallest

答案 2 :(得分:-1)

不需要if个陈述:

Console.WriteLine("Largest Number: " + Math.Max(Math.Max(num1, num2), num3));
Console.WriteLine("Smallest Number: " + Math.Min(Math.Min(num1, num2), num3));