2014-10-10 37 views
1

下面的代碼應打印wheter intenger值oodd甚至有落差通switch語句和for語句如何使用開關

for(int i=2; i<=10; i+=2) 
{ 

    switch(i) 
    { 
    case 1: 
    {System.out.printf("\nNot printing odd numbers");} 
    case 2: 
     System.out.printf("\n %d is an even number.", i); 
    //case 3: 
    //case 4: 

    }//end switch 

}//end for 
+0

你爲什麼要使用交換機? – 2014-10-10 05:04:08

+0

@AniketKulkarni我的教授問我,但我不知道如何處理它。 – 2014-10-10 05:04:53

+0

這應該是輸出。它只是沒有得到我。 不打印奇數! \ n 2是一個偶數。 不打印奇數! \ n 4是一個偶數。 不打印奇數! \ n6是一個偶數。 不打印奇數! \ n8是一個偶數。 不打印奇數! \ n10是偶數。 – 2014-10-10 05:05:10

回答

1
 for (int i = 2; i <= 10; i++) { 

      switch (i % 2) { 
      case 0: // even number 
       System.out.printf("\n %d is an even number.", i); 
       break; 
      case 1: // odd number 
       System.out.printf("\nNot printing odd numbers"); 
       break;   

      }// end switch 

     }// end for 
2

有沒有必要給你for循環趕上奇數,

for(int i=2; i<=10; i+=2) 

i不會奇怪。根據您的switch和問題陳述我想你想,

for(int i=1; i<=10; i++) { 
    switch(i) { 
    case 2: case 4: case 6: case 8: case 10: 
    System.out.printf("\n %d is an even number.", i); 
    break; 
    default: 
    System.out.printf("\nNot printing odd numbers"); 
    } 
} 
7

變化i+=2i++i+=2會給你的i2,4,6,8,10值,這意味着只有偶數。

switch(i%2) 
    { 
    case 0: 
    //even number 
    break; 
    case 1: 
    //Odd Number 
    break; 
    } 
2

我相信一個fall-through開關應該是這樣的。爲了簡單起見,我已經省略了你的外部循環。

switch (i) 
    { 
     case 1: 
     case 3: 
     case 5: 
     case 7: 
     case 9: 
     System.out.printf("\nNot printing odd numbers"); 
    break; 

     case 2: 
     case 4: 
     case 6: 
     case 8: 
     System.out.printf("\n %d is an even number.", i); 
    break; 
} 

你本質上是貫穿一些情況(所有奇數和所有偶數)。因此這個詞。你可以閱讀更多關於fallthrough here

1

試試這個

for (int i = 2; i <= 10; i++) { 

      switch (i % 2) { 

      case 0: 
       System.out.printf("\n%d is an even number.", i); 
       break; 
      case 1: 
       System.out.printf("\nNot printing odd numbers"); 
       break; 

      }// end switch 

     }// end for 
    }