使用以下代码嵌套else-if语句,不打印请帮助说明此代码未执行的原因



使用以下代码,我正在查找变量的最高数量,嵌套else-if语句,不打印请帮助说明此代码未执行的原因

import java.util.Scanner;
public class Nestedifelese {
static int A;
static int B;
static int C;
public static void main(String[] args) {
Scanner obj= new Scanner(System.in);
System.out.println("Enter the A object number :");
A=obj.nextInt();
System.out.println("Enter the B object number :");
B=obj.nextInt();
System.out.println("Enter the C object number :");
C=obj.nextInt();
System.out.println("The value of A is"+ A);
System.out.println("The value of B is"+ B);
System.out.println("The value of C is"+ C);

if(A>=B) 
{
if (A>=C) 
{
System.out.println("The Higgest number is" +A);
}
}       
else if (B>=A) 
{
if (B>=C) 

{
System.out.println("The Higgest number is" +B);
}
}
else if (C>=A) 
{
if (C>=B) 

{
System.out.println("The Higgest number is" +C);
}           
}
}
}

A>=BB>=A中至少有一个为真,因此它永远不会到达else if (C>=A)。如果要使用If-else而不是Math.max函数,请将else if更改为if以解决问题。

您的问题在于if条件。第二个条件B>=A与第一个条件A>=B完全相反。所以,若第一个条件为假,那个么第二个条件将始终为真,并且永远不会达到第三个条件。

您应该使用Math.max来过滤我们的最高数量。如果条件如下,您可以更改其他数量:


if(A>=B && A>=C) {
System.out.println("The Higgest number is" +A);
} 
if (B>=A && B>=C) {
System.out.println("The Higgest number is" +B);
}
if (C>=A && C>=B) {
System.out.println("The Higgest number is" +C);         
}

首先在int之前删除static,我看不出它有任何用处。遵循Variables标准,使用小写字母代替UPPER A、B、C;

答案是:

int highestNumber = Math.max(Math.max(a,b),c);
System.out.println("The Highest number is" +highestNumber);

最新更新