使用以下代码嵌套 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 条件:


        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);