switch语句在Java和C#使用中的差异

来源:互联网 发布:淘宝差评对卖家的影响 编辑:程序博客网 时间:2024/05/19 00:53

1. 在Java中:表达式只能是整数型的值(int,short,byte,char),不能是String类型,long类型,Double类型,Float类型。switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。所以没有break语句也是可以编译通过的。如下所示。

switch(表达式){

case 常量表达式1:语句1;

....

case 常量表达式2:语句2;

default:语句;

}

//---------------------------------------------------------------------------------------------------

 1 public class Switch {
 2     public static void main(String[] args) {
 3         int x = 0;
 4         switch (x) {
 5         case 0:
 6             System.out.println(0);
 7         case 1:
 8             System.out.println(1);
 9         case 2:
10             System.out.println(2);
11         default:
12             System.out.println("default");
13         }
14     }
15 }

2. 在C#中,表达式除了是整数型的值(int,short,byte,char),也可以是String类型,Long类型,但是不能是Double类型,Float类型。而且每个case语句必须有相应的break语句,否则会提示语法错误。这种‘非贯穿’特性可以用goto语句显示的定义指向。如下所示:

switch(表达式){

case 常量表达式1:语句1;

break;

....

case 常量表达式2:语句2;

break;

default:语句;

break;

}

//---------------------------------------------------------------------------------------------------

  1. int i=3;  
  2. switch (i)  
  3. {  
  4. case 1:  
  5. MessageBox.Show("i=1");  
  6. break;  
  7. case 2:  
  8. MessageBox.Show("i=2");  
  9. break;  
  10. default:  
  11. MessageBox.Show("i=?");  
  12. break;  
  13. }
原创粉丝点击