基本c#if语句查询

本文关键字:查询 语句 c#if 基本 | 更新日期: 2023-09-27 17:58:59

我需要输入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语句连接在一起,但我不确定如何做到这一点,或者这是否可能。

基本c#if语句查询

您可以而且必须在许多实例上嵌套块。这样,只有当第一个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));