Java 我需要的程序,要求用户的数字,然后它找到了三个最大值和最小值

Java 我需要的程序,要求用户的数字,然后它找到了三个最大值和最小值,java,Java,我这里有代码,但有问题 public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); System.out.println("Please input 3 integers: "); int w = Integer.parseInt(keyboard.nextLine()); int a = Integer.parseInt(keyboard.nextLine

我这里有代码,但有问题

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Please input 3 integers: ");
    int w = Integer.parseInt(keyboard.nextLine());
    int a = Integer.parseInt(keyboard.nextLine());
    int s = Integer.parseInt(keyboard.nextLine());
    int max = Math.max(w, a);
    if (max > a) {
        max = Math.max(a, s);
        max = Math.max(a, s);
        int min = Math.min(w, a);
        if (min > a) {
            min = Math.min(a, s);
            min = Math.min(a, s);
        }
    } else {
        max = Math.max(a, s);
    }
    System.out.println("The max of three is: " + max);
    System.out.println("the minimum of the three is: " + min);
}

请注意,您不需要读取该行,然后将其解析为整数。可以使用scanner.nextInt()方法。考虑到这一点,您的计划将如下所示:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n1 = scanner.nextInt();
    int n2 = scanner.nextInt();
    int n3 = scanner.nextInt();

    int max = Math.max(n1, n2);
    max = Math.max(max, n3);
    System.out.println("Max: " + max);      


    int min = Math.min(n1, n2);
    min = Math.min(min, n3);
    System.out.println("Min: " + min);
}

这里需要改进的不是真正的编程,而是思考

让我们从“w”开始。一旦你输入了,你就知道这是当前的最大值和最小值

所以马上。您可以声明max=w和min=w

这样你就有了你的出发点。剩下的练习是计算剩余的数字是否能超过最大值或最小值“w”

接下来,将“a”与存储在“max”中的当前最大值进行比较。哪一个是最大的? max=Math.max(max,a)

如果是“a”,max将变成“a”。如果a小于当前最大值,则最大值将保持不变

现在,您可以对“s”执行相同的操作。 max=Math.max(max,s)

现在你已经完成了所有的输入,剩下的是最大值。您可以打印出变量“max”,就完成了

对最小值做同样的操作,你也会得到最小值

另一个给出的编程答案是正确的,我希望这可以解释为什么这些是好的方法

思考每一步,以及你想如何达到目的。将其分解为可管理的步骤,如找到最大值,然后找到最小值。你不必一下子就想清楚。一旦你弄清楚了每一个,你就可以很容易地把它们组合成更有效的东西,比如@Michael提供的东西


但第一个关键是理解为什么,而不是如何。

你的问题到底是什么?你有错误吗?
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n1 = scanner.nextInt();
    int n2 = scanner.nextInt();
    int n3 = scanner.nextInt();

    int max = Math.max(n1, n2);
    max = Math.max(max, n3);
    System.out.println("Max: " + max);      


    int min = Math.min(n1, n2);
    min = Math.min(min, n3);
    System.out.println("Min: " + min);
}