【发布时间】:2022-12-09 15:31:59
【问题描述】:
我目前正在使用 Java,但有一个问题我没有找到正确的方法。它说在 if 语句中找出两个数字的最小值和最大值,以及相等的数字(允许嵌套 ifs)并且它变得非常复杂且难以理解。你能建议一个更好的方法吗?
这是我的代码:
long num1 = 1 ;
long num2 = 1 ;
long num3 = 1 ;
boolean error = false ;
Scanner sc = new Scanner(System.in) ;
do {
if(error)
{
System.out.println("Sorry, error. Try again") ;
}
error = false ;
System.out.print("Enter the first number : ") ;
num1 = sc.nextLong() ;
System.out.print("Enter the second number : ") ;
num2 = sc.nextLong() ;
System.out.print("Enter the third number : ") ;
num3 = sc.nextLong() ;
if(num1<=0 || num2<=0) error = true ;
// number entered will iterate if error...
while(error == true) ;
// main conditions
if(num1>num2)
{
if(num1>num3)
{
System.out.println(num1 + " is the greatest number") ;
if(num2<num3)
{
System.out.println(num2 + " is the smallest") ;
} else if(num2==num3) {
System.out.println(num2 + " and " + num3 + " are equal") ;
}
}
} else if(num2>num3) {
if(num1!=num2)
{
System.out.println(num2 + " is the greatest number") ;
} else {
System.out.println(num2 + " and " + num1 + " are equal") ;
}
if(num1<num3)
{
System.out.println(num1 + " is the smallest number") ;
} else if(num1==num3) {
System.out.println(num1 + " and " + num3 + " are equal") ;
}
} else if(num3>num2){
if(num3!=num1)
{
System.out.println(num3 + " is the greatest") ;
} else {
System.out.println(num3 + " and " + num1 + " are equal") ;
}
}
}
我知道这个程序并没有涵盖所有的可能性,果然,当我运行它时,它并没有显示所有正确的结果。有人可以给我发送一个有组织的程序(带有cmets)吗?我们将不胜感激。
【问题讨论】:
-
你可以做
long min = Math.min(Math.min(num1, num2), num3);同一个班级将帮助最大
标签: java