这是一个程序,应该提示用户输入三个数字,然后显示其中最大的数字。然而,其中存在逻辑错误。我一直想找出这个小混球在哪。请运用你的专业知识帮我一把。我是一名学生,所以请不要对我发火
import java.util.*;
public class HA8LargestErr {
private int num1;
private int num2;
private int num3;
public HA8LargestErr() {
num1 = 0;
num2 = 0;
num3 = 0;
}
public void getNumsFromUser() {
Scanner input = new Scanner (System.in);
System.out.println("Enter three numbers: ");
num1 = input.nextInt();
num2 = input.nextInt();
num3 = input.nextInt();
}
public int returnLargest() {
if (num1 > num2 && num1 > num3)
return num1;
if (num2 > num3 && num2 > num1)
return num2;
return num3;
}
public static void main(String[] args) {
HA8LargestErr data = new HA8LargestErr();
data.getNumsFromUser();
System.out.println ("The largest is : " + data.returnLargest());
}
}发布于 2011-11-24 03:53:11
将您的returnLargest实现替换为
public int returnLargest() {
if (num1 >= num2 && num1 >= num3)
return num1;
if (num2 >= num3)
return num2;
return num3;
}或者按照上面的建议使用Math.max。
编辑:
您需要使用>=而不是>,否则当num1和num2等于且大于num3时,将返回num3。
https://stackoverflow.com/questions/8247921
复制相似问题