我是编码新手。我目前正在使用 Deitel 的“Java:如何编程”,早期的练习之一让我难住了。
它要求我使用简单的第 1 章 if 语句来比较 5 个整数(由用户输入)并显示最大和最小。我受限于第一章中使用的语言,因此我假设我可以在 if 语句后面的括号中列出 int 值。像这样的东西:
int firstInt;
int secondInt;
int thirdInt;
int fourthInt;
int fifthInt;
if (first Int> secondIt, thirdInt, fourthInt, fifthInt)
等等。但这是一个语法错误。有谁知道如何同时比较多个值?谷歌搜索被证明没有帮助,因为所有答案都有一些我不明白的复杂解决方案。
如果我尝试这样的事情:
if (one > two)
System.out.println("%d is the largest number!", one);
if (one > three)
等等。对于所有 1 - 5,我遇到的问题是当我继续使用 if 语句 1>2,3,4,5 2>1,3,4,5 等时,那么每个整数都会有 1 个 true,无论除了最小的数字,它会显示 4 个输出,而我只追求最大和最小。
我被难住了。
最佳答案
表达式:
firstInt > secondInt, thirdInt, fourthInt, fifthInt
无效,因为 Java 是一种计算机语言而不是自然语言(如英语)。
如果你想这样做,你需要的是 and
连词,以及多个完整条件(使用 a,b,c,d ,e
以最小化代码):
if ((a >= b) && (a >= c) && (a >= d) && (a >= e)) { // a >= b,c,d,e
System.out.println ("Largest is: " + a);
} else if ((b >= c) && (b >= d) && (b >= e)) { // b >= c,d,e
System.out.println ("Largest is: " + b);
} else if ((c >= d) && (c >= e)) { // c >= d,e
System.out.println ("Largest is: " + c);
} else if (d >= e) { // d >= e
System.out.println ("Largest is: " + d);
} else { // e > d
System.out.println ("Largest is: " + e);
}
请记住,一旦您确定a
(或后续步骤中的任何其他内容)不是最大的,您就无需再次检查它,因为其他其中之一将比它大。
或者您可以使用 Java 标准 Math
包的功能,其中 Math.max(a,b)
将为您提供 中的最大值>a
和 b
:
int largest = Math.max(a,Math.max(b,Math.max(c,Math.max(d,e))));
在这里,您将所有五个数字中的最大值定义为对{a, max-of-bcde}
的最大值,然后使用类似的方法计算出maximum-of- bcde
作为集合{b,maximum-of-cde}
的最大值,依此类推。
或者,换句话说,从{d,e}
中选择最大的一个并将其命名为x
。然后从{c,x}
中选择最大的一个并将其命名为y
。然后从 {b,y}
中取出最大的,并将其称为 z
。最后是 {a,z}
中最大的一个,这就是五个值中的最大值。
不过,说实话,如果您正在阅读介绍性文本的第一章,它可能还没有涵盖 Java 标准库中的太多内容。
<小时/>但是,如果您正在寻找一种对于初学者来说可能更容易理解流程的方法,我认为您不能超越这个:
int maxOfFive (int a, int b, int c, int d, int e) {
int largest = a;
if (b > largest) largest = b;
if (c > largest) largest = c;
if (d > largest) largest = d;
if (e > largest) largest = e;
return largest;
}
这是对最大值的基本选择就像一个人会做的那样,一个接一个地扫描列表并记住哪个值是最高的,然后返回它。
或者,如果您还没有了解函数(并恢复到原始变量),只需实现相同的代码,无需函数调用:
int largest = firstInt;
if (secondInt > largest) largest = secondInt;
if (thirdInt > largest) largest = thirdInt;
if (fourthInt > largest) largest = fourthInt;
if (fifthInt > largest) largest = fifthInt;
System.out.println ("Largest is: " + largest);
我相信这可能只是使用了您已经表明您了解的内容(变量、单条件 if
语句和输出)。
关于java - Java中IF语句比较多个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020093/