[英]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.