2017-06-04 467 views
-3

我有一個讀取整數列表的程序,然後顯示偶數和奇數的數量。我們假設輸入以0結束。下面是該程序的示例運行。在java數組中計算偶數和奇數的數字

輸入數字:1 2 3 4 5 6 7 8 9 0

奇數:5均勻:4

然而,我的結果是 奇:5和偶數:5.

的問題是0被計爲偶數。這是我的代碼

public class Q75 { 
    public static void main(String[] args){ 
     java.util.Scanner input = new java.util.Scanner (System.in); 
     double [] numbers = new double[10]; 
     System.out.print("Enter numbers: "); 
     for(int i = 0;i<numbers.length;i++){ 
      numbers[i] = input.nextDouble(); 
     } 

     int Evens = 0; 
     int Odd = 0; 

     for(int i = 0;i<numbers.length;i++){ 
      if(numbers[i]%2 == 0){ 
       Evens++; 
      }else{ 
       Odd++; 
      } 
     } 
     System.out.println("The number of odd numbers: " + Odd); 
     System.out.println("The number of even numbers: " + Evens); 
    } 

} 
+0

的JavaScript =/= java的 –

+1

*我應該怎麼解決*解決什麼? – shmosel

+0

雖然我不喜歡使用'Scanner#nextDouble()',並且寧願使用'Scanner#nextLine()',您從未告訴我們問題出在哪裏。 –

回答

1

有兩個選項

A)中添加另一個分支的if語句,即

if(number[i] > 0) { 
    if(number[i] % 2 >0) 
     Odd++; 
    else 
     Evens++; 
} 

注意:改變else分支到else if(number[i] >0),你可以不辦外部如果條件。

B)由於編號列表以0結尾,你可以把這個作爲條件你的for循環即

for(int i =0; i < numbers.length && numbers[i] > 0 ; i++) 

而且根據經驗變量名在Java中開始用小字母的規則

0

只是不檢查的最後一個元素:使用i < numbers.length - 1

for(int i = 0;i < numbers.length - 1; i++) { 
     // 
} 
+0

這要求你知道0在最後一個元素(以及其他地方)。我建議你至少檢查一下假設。 –

+0

是的。該計劃如此說。它仍然會考慮數組中間的任何0。 –