C#流程控制 判断 if、switch语句 C#学习杂记(三)

1、if 语句
最基本的就是 if 结合 else 语句,if 条件不满足,就执行 else 语句

            if (a>b)
            {
    
    
                Console.WriteLine("a大于b");
            }
            else
            {
    
    
                Console.WriteLine("a小于b");
            }

判断条件增加的时候,可以结合 else if 语句使用,比如判断一个人成绩的等级

			if (a>=90)
            {
    
    
                Console.WriteLine("优秀");
            }
            else if (a>=70 )
            {
    
    
                Console.WriteLine("良好");
            }
            else if (a>=60)
            {
    
    
                Console.WriteLine("及格");
            }
            else
            {
    
    
                Console.WriteLine("不及格");
            }

2、switch 语句
基本的 switch 语句使用,需要注意的是,case语句最后需要搭配break跳出case语句,否则会报错

string a = "吃饭";
            switch (a)//传入用于判断的变量
            {
    
    
                case "电影": //判断条件
                    Console.WriteLine("现在去看电影");
                    break; //跳出 case 语句,否则会报错
                case "吃饭":
                    Console.WriteLine("现在去吃饭");
                    break;
                case "逛街":
                    Console.WriteLine("现在去逛街");
                    break;
                default:
                    Console.WriteLine("现在去做其他的事情");
                    break;
            }

switch语句中的条件贯穿
比如判断学生日常状态,
周一到周五:上课,
周六:自习
周七:休息

Console.WriteLine("请输入星期几");
            string day = Console.ReadLine();
            switch (day)
            {
    
    
                case "1": //使用条件贯穿,1~5
                case "2":
                case "3":
                case "4":
                case "5":
                    Console.WriteLine("上课");
                    break;
                case "6":
                    Console.WriteLine("自习");
                    break;
                case "7":
                    Console.WriteLine("休息");
                    break;
            }

当输入1~5时,输出结果都是“上课”

3、if 与switch 性能分析

首先看原理,switch case语句会生成一份大小为最大case常量+1的条件跳表,程序首先会判断switch变量是否大于最大case 常量,若大于,则跳到default分支处理;否则取得索引号与switch变量相同的跳表项的地址,程序跳到此地址执行,就完成了分支的跳转。

这就是经典的以空间换取时间上的效率,如果分支较多,使用switch case 是不错的选择

if else语句通常用在范围判断中,比如if(a>10),类似这样的范围判断,显然switch case 语句就不太适合

总结: 在范围判断时尽量使用if else语句,在多分支条件判断时,尽量使用switch case 语句

猜你喜欢

转载自blog.csdn.net/qq_40385747/article/details/108900464