2014-10-10 12 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 
    }