C语言是一门结构化的程序设计语言,包括顺序、选择、循环三种语言结构。
什么是语句?
1.表达式语句;
2.函数调用语句;
3.控制语句;
4.复合语句;
5.空语句;
接下来的几篇博客介绍的是控制语句
控制语句可以分成以下三类共九种语句
1.条件判断语句:if语句 switch语句
2.循环执行语句:do while 语句 while语句 for语句
3.转向语句:break 语句 goto 语句 continue语句 return语句
分支语句(条件判断语句)
如果你好好写博客,每天练题敲代码等到大三校招时拿个好offer走上人生巅峰
如果你每天摆烂,校招时作为一个三无人员只能卖红薯!
这就是选择!!!
if 语句
语法结构:
单分支
if(表达式) 语句;
双分支
if(表达式) 语句1; else 语句2;
多分支
if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3;
例:多组输入年龄判断是否成年,如果年龄大于等于18输出成年,反之输出未成年;
int main() { int age = 0; while (scanf("%d", &age)!=EOF) { if (age >= 18) { printf("成年\n"); } else { printf("未成年\n"); } } return 0; }
注意:
(1) else 后面想要加条件必须加if
(2) if和else语句后面默认只管理一条语句
int main() { int age = 0; scanf("%d", &age); if (age < 18) printf("不能交女朋友\n"); printf("交女朋友\n"); return 0; }
(3) 悬空else(else只与最近的if匹配)
int main() { int a = 0; int b = 0; if (a == 1) if (b == 2) printf("hehe\n"); else printf("haha\a"); return 0; }
打印结果为空并不是haha;
在书写分支代码时候一定不要吝啬大括号的使用避免造成难以找到的bug,以及养成良好的代码风格;
给大家推荐一本能促成大家养成良好代码风格的书籍https://vrlab.org.cn/~zhuq/download/%E9%AB%98%E8%B4%A8%E9%87%8F%E7%BC%96%E7%A8%8B%E6%8C%87%E5%8D%97.pdf
经典题目
判断一个数是否为奇数
int main() { int i = 0; while (scanf("%d", &i) != EOF) { if (i % 2 == 1) { printf("奇数\n"); } else { printf("偶数\n"); } } return 0; }
输出1-100之间的奇数
int main() { int i = 1; while (i < 101) { if (i % 2 == 1) { printf("%d ", i); } i++; } return 0; }
我们可以将上面的代码进行优化让i=1,每次只打印i+2
int main() { int i = 1; while (i < 101) { printf("%d ", i); i+=2; } return 0; }
一个小tips:我们在运用if语句时经常会进行两个数值的判断(==),但在实际情况中难免会出错只写了一个=,编译器并不会报错,我们可以按下面的方法写,编译器会识别出我们的错误
if(5==i)//将数字写在前面 { 语句; }
switch语句
语法结构:
switch(整形表达式) { 语句项: }
例:输入数字输出对应的星期数
int main () { int day = 0; scanf("%d", &day); switch (day) { case 1: printf("星期一\n"); case 2: printf("星期二\n"); case 3: printf("星期三\n"); case 4: printf("星期四\n"); case 5: printf("星期五\n"); case 6: printf("星期六\n"); case 7: printf("星期七\n"); } return 0; }
switch语句中break中的作用
我们会发现输入1并不是只输出星期一,而是全部输出;并不是我们想要的结果,解决这个问题其实很简单只要在每个语句项后面加个break就可以实现;因为switch语句在语句项中知道遇见break才会停止,否则会运行到最后一条语句;
int main () { int day = 0; scanf("%d", &day); 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; }
例:输入一个数字当其小于等于5时输出weekday,6-7输出weekend;
int main () { int day = 0; 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; } return 0; }
这样就能体现出break在switch中的重要作用
default在switch中的作用
加入我们在上面的代码中输入8呢?程序该怎么走?那我们就可以用default语句来解决
int main () { int day = 0; 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("输入错误\n"); } return 0; }
注:default在switch中可以放在任意位置
总结:以上便是C语言控制语句中的的if 语句和switch 语句主要在进行选择使用
下一篇预告:循环语句