面试细节:分支语句—if 和switch的用法,你都知道吗?
前言
上一次我们说完了初识C语言的知识点,今天我们就开启第二章——==分支语句和循环语句==。那么就由云小逸带你了解认识学习==分支语句和循环语句(1)==。
——————————————————————————————
首先先写上几句话:献给坚持创作的我和点开这篇文章希望进步的你
- 生活总是这样,不能叫人处处都满意。但我们还要热情地活下去。==人活一生,值得爱的东西很多==,不要因为一个不满意,就灰心。
- 没有一个人的生活道路是笔直的、没有岔道的。有些岔道口,譬如政治上的岔道口,事业上的岔道口,个人生活上的岔道口,你走错一步,可以影响人生的一个时期,也可以影响一生。
- 人在年轻时,最头疼的一件事就是决定自己这一生要做什么。
- 人生太长,我们怕寂寞,人生太短,我们怕来不及。
- 光勤劳是不够的,蚂蚁也非常勤劳。你在勤劳些什么呢?有两种过错是基本的,其他一切过错都由此而生:==急躁和懒惰==。
1.C语言是==结构化==的程序设计语言
C语言是一门结构化的程序设计语句,可以将其分为三种:顺序语句、选择语句、循环语句。如图:
正如我们汉语中的语句可以分为疑问句,反问句,排比句一样,C语言也可以划分为一下五种:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
这几节我们先来谈一谈:控制语句。
其中C语言中的控制语句可以分为三大类:
1.==条件判断语句(分支语句)==:if , switch
2.循环执行语句:do……while , while ,for
3.转向语句:break语句,goto语句,return语句 ,continue语句
2.分支语句(条件判断语句、选择语句)
(1)if语句
如果你好好学习,校招时拿一个==好offer==,==走上人生巅峰==。
如果你不学习,毕业等于失业,回家卖红薯。 这就是选择!
a if() { …… }
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int a = 10; if (3 == a) printf("love!\n"); return 0; }
注意两者差异的原因:第一张是判断是否==a等于3==,第二张是==赋值了a=3==,a非零则为真
如果你想避免第二种错误,这里推荐把它写成3==a,这样写如果忘加了一个等号编译器会报错,怎么样是不是很==实用(^_−)☆
b if……else……
#include<stdio.h> int main(void) { int age = 17; if (age < 18) printf("未成年!\n"); else printf("成年了!\n"); return 0; }
c if……else if……else……
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int age = 17; scanf("%d", &age); if (age < 18) printf("青少年\n"); else if (age >= 18 && age < 28) printf("青年\n"); else if (age >= 28 && age < 40) printf("中年\n"); else if (age >= 40 && age < 60) printf("壮年\n"); else if (age >= 60 && age <= 100) printf("老年\n"); else printf("老寿星\n"); return 0; }
d.悬空else
一道题帮助你理解悬空else:动一动你漂亮(帅气)的脑袋想一想,结果是什么?
如果你不确定结果是吗?那就请看下面这张图:
哈哈结果是不是一目了然:
如果还没有明白,也没关系,看下面这张图:
相信聪明的你肯定明白了吧ヾ(=・ω・=)o
这个例子告诉了我们两件事:
1.else是与最近的if相匹配。
2.好的代码习惯有助于我们更好更快的理解代码,所以说养成一个优秀的代码习惯是多么重要。过几天我会单独写一个博客说一说:优秀的代码习惯有哪些?以帮助我们更好的学习和未来的就业!
if语句我们大致讲完了,这里推荐大家去写==两道题==去巩固一下:
1.判断一个数是否为奇数
2.输出1至100之间的奇数
(2)switch语句
a.switch语句也是一种分支语句。常常用于多分支的情况。
比如下面这个例子:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
如果用if将会有多麻烦,我们想想便头皮发麻,且写出来结果不易观察和分析。
而用switch是超级简单的:
#include <stdio.h> int main() { int day = 0; switch(day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; } return 0; }
注:switch(表达式A)中表达式必须是==整型常量==表达式,可以是字符,因为字符属于整形家族,按ASCII码存储,其本质上是整形。
b.break在switch中的作用
如果不加上每一个case后break上面的例子将会出现这样的结果:
所以总结:break在switch中的作用是:==跳出,永久终止==。
c.switch的使用
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int day = 3; scanf("%d", &day); switch (day) { case 1: case 2: case 3: case 4: case 5: printf("weekday!\n"); break; case 6: case 7: printf("weekend!\n"); break; default:printf("error!\n"); break; } return 0; }
default:printf("error!\n"); break;//这个的作用是如果输入大于7则报错!!!
举一个例子以便你的理解:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) { int n = 1, m = 2; switch (n) { case 1:n++; case 2:m++; case 3: switch (n) { case 1:n++; case 2:m++; n++; break; } case 4:m++; break; default:printf("error!\n"); break; } printf("%d %d", m, n); return 0; }
结果给各位大佬附上结果:
🌹作者:云小逸
📝个人主页:云小逸的主页
📝码云:云小逸 (YunXiaoYi003) - Gitee.com
🤟motto:要敢于一个人默默的面对自己,==强大自己才是核心==。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!==学会自己和解,与过去和解,努力爱自己==。希望春天来之前,我们一起面朝大海,春暖花开!🤟
👏专栏:C语言初阶👏
最后
十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:
没有人可以永远==无条件==的陪伴着你,要知道,下雨天的时候==连影子都会缺席==。
就是时光倒流,生命再一次重演,我选择的仍是这条同样的道路。
别为了那些不属于你的观众,去==演绎==不擅长的人生。
不如意事常***,可与人言无二三。
我相信,那一切都是==种子==。只有经过埋葬,才有生机。
最后如果觉得我写的还不错,请不要忘记==点赞==✌,==收藏==✌,加==关注==✌哦(。・ω・。),所有代码均上传至云小逸的码云了,快去看看吧!
愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚==菜鸟==逐渐成为==大佬==。加油,为自己点赞!