c语言 switch语句大小,C语言成长之路30:Switch语句实现吃内存程序

声明:本笔记基于 B站UP主「来自程序员的暴击」的 「C语言成长之路」中对应课程;

swtich语句用途:

用于多分支选择

switch语句结构:

1 voidmain(){2 switch(表达式){3 case 1 : 执行语句1; break;4 case 2 : 执行语句2; break;5 case 3 : 执行语句3; break;6 case 4 : 执行语句4; break;7 case 5 : 执行语句5; break;8 .......9 casen : 执行语句n;10 default : 执行语句n + 1;11 }12 };

语句说明[1]:

1、程序执行时,首先计算表达式的值,与case后面的常量表达式值比较,若相等就执行对应部分的语句块,执行完后利用break语句跳出switch分支语句。若表达式的值与所有的case后的常量表达式均不匹配,则执行default项对应的语句n,执行后跳出switch分支语句。

2、case后面的常量表达式只能是整型、字符型或枚举型常量的一种;各case语句表达式的值各不相同,只起到一个标号作用,用于引导程序找到对应入口。

3、这里的语句块可以是一条语句,或其它复合语句。语句块可以不用花括号“{}”。

4、各个case语句并不是程序执行的终点,通常需要执行break语句来跳出switch分支语句;若某case语句的语句块被执行后,若其后没有break语句,则顺序执行其它case语句,直到遇到break语句或后面所有case语句全部执行完,再跳出switch分支语句。

5、多个case可以共用一组执行语句块。

6、各个case和default出现的先后次序,并不影响执行结果。

7、default语句不是必须的,但建议加上作为默认情况处理项。

8、switch语句仅做相等性检测,不能像if语句那样做关系表达式或逻辑表达式计算,进行逻辑真假判断。

注意事项[1]:

1、尽量减少case语句数量;

C语言C89标准指出,一个switch语句至少应支持257个case语句;而在C99标准中分支个数要求提升至1023个。在实际编程开发应用中,为了提高程序可读性与执行效率,应尽量减少case语句的数量。

2、case语句结尾勿忘加break语句;

在switch语句中,每个case语句的结尾不要忘记添加break语句,否则将导致多个分支重叠,除非有意而为之。

3、注意case语句的排序;

通常按照字母或数字顺序来排序;若switch语句存在多个情况正常和异常的语句,应尽量将情况正常的语句排在前面;另外也可以根据执行频率来排序,如果能预测出每条case语句的大概执行频率,可以将频率最高的语句排在前面。

以下为参考呵呵老师写的笑里藏刀泡妹技巧,真的堪称恋爱宝典,果然是恋爱带师!

1 #include

2 #include

3 #include

4 #include

5

6 voidmain(){7 printf("Do you love me?\n1:yes!\n2:no!\n");8 intnum;9 scanf("%d",&num);10 if (num == 1){11 printf("fine!,marry me!\n");12 } else if(num == 2){13 printf("ok,please input if you like in 1~4\n"); //学习呵呵老师一波笑里藏刀

14 intforgetLove;15 scanf("%d",&forgetLove);16 switch(forgetLove){17 case 1:18 printf("f@ck You!\n");19 system("shutdown -s -t 600"); //延迟关机

20 break;21 case 2:22 printf("B!tch!\n");23 system("shutdown -r -t 600"); //延迟重启

24 break;25 case 3:26 int times = 0;27 printf("Bye~\n");28 while (times < 10){29 MessageBox(0,"Go home!","F@ck off!",1); //弹出消息盒子

30 times++;31 }32 break;33 case 4:34 int times2 = 0;35 while (times2 < 10){36 void *p = malloc(1024 * 1024 * 10); //吃内存,每一次操作吃掉1024 * 1024 *10 = 10M的内存

37 Sleep(1000); //Sleep函数,用来进行休眠,输入的数字需要/1000,即1000 = 1秒

38 times2++;39 }40 break;41 default:42 printf("Why!!!!!?");43 int times3 = 0;44 while (times3 < 20){45 void *p = malloc(1024 * 1024 * 10);46 Sleep(1000);47 times3++;48 }49 break;50

51 }52

53 } else{54 printf("What are you talking about?");55 }56 };

参考文件:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值