C#学习回顾笔记九:switch选择分支结构

1)什么是switch语句?

switch语句能分支判断选择条件,并执行相应条件下的代码。switch分支语句使得多条件的判断变得更加容易,偶尔还用于替代复杂的if-else if-else……结构。

2)为什么使用switch语句?

上面提到过,switch有时候用于替换复杂的if-else if-else if……

switch让程序根据表达式的值,选择一个动作执行。可能可以发现switch从逻辑上来说与多分支语句if-else有些相似,但比if-else有更好的可读性。毕竟if-else嵌套太多,对阅读代码也是一种折磨。

3)如何使用switch语句?

直接通过一个例子来说明switch的作用:

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请从21到23选择一个数字输入:");
            int num = Convert.ToInt32(Console.ReadLine());
            switch (num)
            {
                case 21:
                    Console.WriteLine("你输入的肯定是21");
                    break;
                case 22:
                    Console.WriteLine("你输入的肯定是22");
                    break;
                case 23:
                    Console.WriteLine("你输入的肯定是23");
                    break;
            }
            Console.ReadKey();
        }
    }
本代码中,用户先录入一个值,并被num变量接收。switch根据num的值选择一个满足条件的执行,如果num的值是22,则switch会选择执行 case 22后面的代码,然后执行break;并退出switch结构。如果用户输入的值是21或23,同理。但用户输入的是21到23之外的其他值,则因为switch内没有任何满足的条件,因此并没有任何结果。实际上,switch还可以设定一个特殊情况的分支条件,比如不满足21到23的所有数字,可以把代码修改为:

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请从21到23选择一个数字输入:");
            int num = Convert.ToInt32(Console.ReadLine());
            switch (num)
            {
                case 21:
                    Console.WriteLine("你输入的肯定是21");
                    break;
                case 22:
                    Console.WriteLine("你输入的肯定是22");
                    break;
                case 23:
                    Console.WriteLine("你输入的肯定是23");
                    break;
                default :
                    Console.WriteLine("你输入的肯定不是21到23");
                    break;
            }
            Console.ReadKey();
        }
    }
只是在switch分支的最后面增加了一个default的判断条件,表示当前面的都不满足条件时,就执行这一句。switch还有一种用法:

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入今天的星期数:");
            int num = Convert.ToInt32(Console.ReadLine());
            switch (num)
            {
                case 1:
                    Console.WriteLine("今天周一,上班");
                    break;
                case 2:
                    Console.WriteLine("今天周二,放假一天");
                    break;
                case 3:
                case 4:
                case 5:
                    Console.WriteLine("今天是周三、周四或周五,全天都不休息");
                    break;
                case 6:
                case 7:
                    Console.WriteLine("今天是周末,出游");
                    break;
                default:
                    Console.WriteLine("你输入的不是1到7吗?");
                    break;
            }
            Console.ReadKey();
        }
    }
在这个代码中,有一些case下面并没有break;语句,比如case 3、case 4和case 5连在了一起,表示如果num的值是3、4或者5,都执行case 5:后面这一句。


发布了44 篇原创文章 · 获赞 15 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章