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语句放在循环中。