我想從用戶輸入的數字中找到偶數和甚至最大值。例如,如果他們回答「多少個整數?」與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/)。 「短」之後關注術語的各個部分。 –
爲什麼你對待第一個值如此不同?我沒有看到任何理由處理第一個值與以後的值不同。 –