Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无数组序列的最大最小奇数_Java - Fatal编程技术网

Java 无数组序列的最大最小奇数

Java 无数组序列的最大最小奇数,java,Java,我正在尝试从输入序列中获取最大和最小奇数,而不使用数组,请告知我应该添加什么,我正在使用以下代码: System.out.print("Enter odd integers(even to Stop): " ); do { num = input.nextInt(); sum += num; } while (num % 2 != 0); if (num < min) { min = num; } if (num > max

我正在尝试从输入序列中获取最大和最小奇数,而不使用数组,请告知我应该添加什么,我正在使用以下代码:

System.out.print("Enter odd integers(even to Stop): " );

do {
    num = input.nextInt();
    sum += num;
} while (num % 2 != 0);

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

System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);

检查奇数值(可能记录为最小值或最大值)的逻辑应在循环内:

int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;

int num = input.nextInt();

while (num % 2 != 0) {
    sum += num;

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

    num = input.nextInt();
}

System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);

作为注释,我分别将最小和最大整数初始化为最大和最小整数值。这可以确保我们正确捕获第一个输入,不管它们是什么。

这将起作用。如果没有任何奇数,则最小值和最大值将为0:

Scanner input = new Scanner(System.in);
int num = 0, sum = 0, max = 0, min = Integer.MAX_VALUE;
System.out.print("Enter odd integers(even to Stop): ");
do {
    num = input.nextInt();
    if (num < min) {
        min = num;
    }
    if (num > max) {
        max = num;
    }
    sum += num;
} while (num % 2 != 0);
if(min % 2 == 0) min = 0;
if(max % 2 == 0) max = 0;
System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);
input.close();

谢谢你,蒂姆,这很有效!但是对于Sum变量,我需要排除最终的偶数,现在它添加所有的数,包括最终的偶数one@khelwood我看不出有什么好的措辞。如果你有更好的方法,你可以发帖。@TimBiegeleisen不,我想我也应该使用break。在阅读do while中的下一个number first语句之前,用0初始化num,并且do sum+=numloop@JohannesKuhn这正是我所做的,而且很有效,谢谢!我只需要检查和是否可以被输入的最后一个整数整除,这是一个偶数。只需将两个if语句放在循环中。