我想从用户输入的数字中找到偶数和甚至最大值。例如,如果他们回答“多少个整数?”与4和输入的整数:2,9,18,4它应该输出:找到偶数,甚至最大
how many integers? 4
next integer? 2
next integer? 9
next integer? 18
next integer? 4
even sum = 24
even max = 18
这里是我的代码:
public static void evenSum(){
//prompt the user to enter the amount of integers
Scanner console = new Scanner(System.in);
System.out.print("how many integers? ");
int numbers = console.nextInt();
//prompt user to enter the first integer
System.out.print("next integer? ");
int firstNum = console.nextInt();
//set the even max to the firstNum
int evenMax = firstNum;
//set the evenSum to zero
int evenSum = 0;
//for loop for the number of times to ask user to input numbers
for (int i = 2; i <= numbers; i++) {
System.out.print("next integer? ");
int num = console.nextInt();
//check to see if the first number is even
if (firstNum % 2 == 0){
//if it is even then add it to the evenSum
evenSum += firstNum;
}
//check to see if the numbers entered are even
if (num % 2 == 0) {
//if they are even add them to the evenSum
evenSum += num;
}
//check to see if the number entered is bigger than the first number
if (num > firstNum) {
if (num % 2 == 0 ) {
evenMax = num;
}
}
}
System.out.println("even sum = " +evenSum);
System.out.println("even max = " +evenMax);
}
但这里是我的输出是什么:
how many integers? 4
next integer? 2
next integer? 9
next integer? 18
next integer? 4
even sum = 28
even max = 4
有人可以帮我弄清楚问题是什么?
在for循环中,如果firstNum是偶数,则在每次迭代时将'firstNum'添加到'evenNum'。移动'if(firstNum%2 == 0){even_more + = firstNum;在循环之外。 –
为了更好地提供帮助,请发布[SSCCE](http://sscce.org/)。 “短”之后关注术语的各个部分。 –
为什么你对待第一个值如此不同?我没有看到任何理由处理第一个值与以后的值不同。 –