在这篇文章,我们要讨论JAVA和C#中switch语句的区别。
在JAVA中,switch结构可以很好的解决等值判断问题,举个例子
- import java.util.Scanner;
- public class demo
- {
- public static void main(String args [])
- {
- Scanner input = new Scanner(System.in);
- System.out.println("请输入令狐冲的名次:");
- int mingci = input.nextInt();
- switch(mingci)
- {
- case 1:
- System.out.println("我是第一名");
- break;
- case 2:
- System.out.println("我是第二名");
- break;
- default:
- System.out.println("其他");
- break;
- }
- }
- }
在JAVA中的switch结构,只能做整型数值或字符类型的等值判断。
值的注意的是break关键字的用法,在程序中,若碰到break则跳出该结构。
那么它的执行过程是怎么样的呢?
首先计算switch后面小括号里的整型数值或者字符类型,然后将计算结构跟每个case后的常量比较,当遇到二者相等的情况下,执行case块中的语句,遇到break时就跳出switch结构,执行switch结构后的语句。如果没有任何一个case后的常量跟小括号中的值相等,则执行default语句块中的语句。若将上面程序中的break关键字都去掉,若输入1的话,运行的结果是:
我是第一名
我是第二名
其他
因为没有了break关键字,输入了1,会执行case 1:后面的语句,然后一直向下执行switch结构中的语句。
但是在C#中,要求每个case块和default块都必须有break语句,除非两个case语句块中间没有其他语句.示例如下:
- Class Demo
- {
- static void Main()
- {
- Console.WriteLine("请输入名次:");
- int mingci = int.parse(Console.ReadLine());
- switch(mingci)
- {
- case 1:
- Console.WriteLine("我是第一名");
- break;
- case 2:
- case 3:
- Console.WriteLine("我是第三名");
- break;
- default:
- Console.WriteLine("其他");
- break;
- }
- }
- }