繁体   English   中英

基本的C#if语句查询

[英]Basic c# if-statement inquiry

我需要输入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语句连接在一起,但是我不确定如何执行此操作,甚至不确定是否可行。

您可以并且必须在许多实例上嵌套块。 这样,仅当第一个被评估为true时,才会评估第二个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);
    }
}

这仅是为了回答您最直接的问题,即最小的数字被显示多次。

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

要获得最大/最低值,最好的方法是让一个变量存储当前的最大/最小值,而不是检查每种情况(排列)。

就像是

    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

否, if有必要的话:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM