如何解决使用以下代码嵌套 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>=B
和 B>=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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。