2015-11-10 29 views
0

初始化兩個整數變量並將它們設置爲零。遍歷數組中的每個項目並進行計算以確定數字是偶數還是奇數(使用模運算符)。使用switch語句,對所有偶數增加一個變量,對其他變量對任何奇數進行相同操作(使用增量運算符)。
輸出偶數和關數的總數到屏幕上。奇數偶數使用不帶用戶輸入的開關

輸出示例:

34, 53, 125, 854 8, 1045, 66, 9434, 5205, 235 
There are 5 even numbers. 
There are 5 odd numbers. 

這裏是我的代碼

public class Switch { 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 


     int n = 0; 
     int e = 0, o = 0; 

     for(n = 5; n < 50; n++) 

     { 

      if(n % 2 == 0) 
        System.out.println(n); 


     //e= 0; o = 0; 

      switch(n){ 
       case 1: o = 0; 
       case 3: 
       case 5: 
       case 7: 
       case 9: o++; break; 
       // these are Even 
       case 2: e = 0; 
       case 4: 
       case 6: 
       case 8: 
       case 10: e++; break; 

       default: System.out.println("no odd or even numbers"); 
      } 
     } 
     System.out.println("You have " + e + " even numbers: and you have odd numbers " + o); 
    } 
} 

這裏是我出來放什麼我做錯了。

no odd or even numbers 
48 
no odd or even numbers 
no odd or even numbers 
You have 3 even numbers: and you have odd numbers 3 
+4

你'N',而不是'N%的切換2' –

回答

3

您的原始代碼的主要問題是switch(n)聲明。這(大致)相當於說

if (n == 1) { 
    o = 0; 
} else if (n == 2) { 
    e = 0; 
} 
if (n == 3 || n == 5 || n == 7 || n == 9) { 
    o++; 
} 
else if (n == 4 || n == 6 || n == 8 || n == 10) { 
    e++; 
} 
else { 
    System.out.println("no odd or even numbers"); 
} 

我相信你可以看到那個代碼有什麼問題,我希望它解釋你的初始輸出。

你在5到50的範圍內循環,所以你的3個偶數是6,8和10,你的3個奇數是5,7和9.所有的偶數都是打印出來的,其餘的是打印爲no odd or even numbers


這是一個基於您的問題的工作解決方案。

請注意,數字只有2個狀態,偶數或奇數(01)。因此,您的「無偶數或奇數」的打印語句沒有意義。

我也不能確定你與5中環路50在做什麼......

public static void main(String[] args) { 

     int[] nums = new int[] {34, 53, 125, 854, 8, 1045, 66, 9434, 5205, 235}; 

     int e = 0, o = 0; 

     for(int i = 0; i < nums.length; i++) 
     { 
      int remainder = nums[i] % 2; 

      switch(remainder){ 
       case 0: 
        e++; 
        break; 
       case 1: 
        o++; 
        break; 
       default: 
        break; 
      } 
     } 
     System.out.println("There are " + e + " even numbers. There are " + o + " odd numbers."); 
    } 
+0

謝謝你,我沒有看到,我正在接通(n)我是新手,我可以從這裏開始。 – Smood

+1

@Smood - 很高興能幫到你。如果您願意,您可以通過點擊選中的複選標記來接受我的答案。 –