最大和最小的Java控制台应用程序。为什么控制台返回2147483647?

时间:2020-03-20 12:00:02

标签: java console-application

这是我写的代码

public class School1 {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int sum = 0;
    int sum1 = 0;
    int max = Integer.MIN_VALUE;
    int min = Integer.MAX_VALUE;
    int max1 = Integer.MIN_VALUE;
    int min1 = Integer.MAX_VALUE;

    for (int i = 0; i < n; i++) {
        int num = scan.nextInt();
        if(num % 2 == 1) {
            sum += num;
            if (num > max) {
                max = num;
            } else if (num < min) {
                min = num;
            }
        }else if(num % 2 == 0){
            sum1 += num;
            if (num > max1) {
                max1 = num;
            } else if (num < min1) {
                min1 = num;
            }
        }
    }
    System.out.println("OddSum =" + sum);
    System.out.println("OddMin = " + min);
    System.out.println("OddMax = " + max);
    System.out.println("EvenSum =" + sum1);
    System.out.println("EvenMin = " + min1);
    System.out.println("EvenMax = " + max1);
}
}

这是一本书中的练习,我必须编写一个控制台应用程序,该应用程序使用“ n”个数字并返回偶数最大和奇数最大,偶数最小和奇数最小,偶数总和和奇数
代码很好运行,但是一切正常,但是当控制台返回EvenMin或OddMin = 2147483647时,我不明白为什么或如何使其正常运行?有人帮忙吗? 字幕说明:请不要报告问题,因为我正在寻找答案。

1 个答案:

答案 0 :(得分:0)

您必须将这两个条件分开

if (num > max) {
    max = num;
} 
if (num < min) {
    min = num;
}

并且您的代码不适用于负数