文章目录
✨✨✨每个人都有着自己的旅程,慢慢走着自己的路,你总会有所发现.
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。
前言
- 本篇文章为读友总结了关于if语句,switch语句和break语句在switch中的使用,希望自己所总结的内容能帮到,正在困惑的你,如有错误希望在评论区指正,让我们一起交流进步!
![](https://img-blog.csdnimg.cn/1a080ff7293e43c4930de3dcca73a107.jpeg#pic_center)
本文开始
文章重点
- 了解什么是语句
- if的使用
- switch的使用
C语言被称为是结构化的程序设计语言,它的分支都来源于生活,比如一条路我们一直顺利的走下去这属于 顺序结构;在走的过程中有了岔路我们可能会选择走那条路这就是 选择结构;如果迷路了一直绕圈走,这就是 循环结构;
为了解决生活中的问题, C语言就有了对应的顺序、选择、循环结构的实现,接下来让我们了解一下吧!
1.什么是语句?
- 表达式语句
函数调用语句
控制语句
复合语句
空语句
为了更好的表达,我将以代码形式向大家讲解语句的书写.
#include<stdio.h>
int main()
{
//表达式语句,就是写一个表达式即可
2 + 3;//记住每个语句后面必须要有;冒号才算完整语句
//函数调用语句,一般在函数调用时会用到
add(2, 3);
//空语句:一个冒号即可不需要带内容
;
return 0;
}
[说明]:本篇主要介绍控制语句
控制语句:用于控制程序的执行流程,以实现程序的各种结构方式.
c语言有9种控制语句分为三类:
- 分支语句(条件判断语句):if语句、switch语句;
- 循环语句:do while语句、while语句、for语句;
- 转向语句:break语句、goto语句、continue语句、return语句;
循环会在下篇详细讲解,请大家不要担心.
2.选择语句
选择好比学习,我们要好好学习,校招拿到好的offer,如果躺平不努力学习,毕业可能失业,回家卖红薯.
这就是生活中的选择!
- 面对生活中的岔口,你也该选择你的道路了!决定权在你的手中.
2.1 if语句
if语句的语法结构
使用 if 需要判断表达式是否为真
非0为真,0为假
为真选择语句执行,否者不执行该语句
- if(表达式)
语句; - if(表达式)
语句1;
else
语句2; - 多分支if语句
if(表达式1)
语句2;
else if(表达式2)
语句2;
else
语句3;
代码演示if语句的使用 :
#include<stdio.h>
int main()
{
//根据判断年龄判断是否成年
/*int age = 16;
if (age < 18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
*/
//多分支
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("少年\n");
}
else if(age>=18&&age<=30)
{
printf("青年");
}
else if (age >= 31 && age <= 55)
{
printf("壮年");
}
else if (age >= 56 && age <= 90)
{
printf("老年");
}
else
{
printf("老寿星");
}
return 0;
}
if 语句大括号使用规则
在只有一条语句时,使用if语句可以不带 { };
当语句大于等于两条时必须使用 { },不然if与默认只读取一条语句;
这里的 { }又叫代码块,可以存放多条语句
2.1.1悬空else
- 何为悬空呢?是不是有很大疑问?让我看一段代码来思考一下吧!
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
上述代码什么也不打印,看看有你有没有错呢?
这是为什么呢?我们来分析一下!
else的匹配规则:与最近的 if 相匹配,这里的else与if(b=2)相匹配,不能以为else与那个if对齐就跟谁匹配,这是错误的思想.
这里我们就可以意识到 好的代码风格 有多重要,正确的代码风格能使你的代码逻辑更清晰.让我们看一段改进过的代码,来体验一下!
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}
- 是不是有很明显的区别,自己的思路是不是更清晰了呢?所以从现在做起保持自己的代码风格,让自己有一手优秀的代码风格!!!
2.1.2if书写形式的对比
代码风格能影响人观看的舒适度,我们来通过一段代码看看,他们会有多大区别!
//代码示范1
if (condition) {
return x;
}
return y;
//代码示范2
if (condition)
{
return x;
}
else
{
return y;
}
//代码示范3
int num = 1;
if (num == 5)
{
printf("hehe\n");
}
//当变量与常量相等时,我们建议这样放置
//代码4
int num = 1;
if (5 == num)
{
printf("hehe\n");
}
//代码5(错误示范)
if (condition)
{
return x;
}
else
{
return y;
}
通过观察,显然代码2,代码4更清晰表达自己的逻辑,让人能够更快的阅读,还能避免一些问题BUG等等.如果写出代码5的样子,与前几个代码相比,好代码更加重要,所以小伙伴们更加要注重自己的代码风格.
2.switch语句
switch语句是一种分支语句,常用于多分.
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
- 实现多分支也可以用if…else if … else形式,但是形式很复杂,我们怎么能够更简洁的表示,这里就要用到switch语句.让我们来看看吧!!!
语句结构
switch(整型表达式)
{
case 整型常量表达式:
语句;
}
2.1break在switch中的应用
- 在switch语句中,我们没办法直接实现分支语句, 搭配break才能真正的实现分支.
- break:在switch语句中遇见break时,会直接跳出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语句根据()中的表达式判断,表达式有特殊要求必须是 常量表达式或者枚举类型 ,从表达式进入那个语句项(如:表达式是6,就会进入case 6语句项),而 case 后面必须是 整型常量表达式 ,才可以使用.
有时候我们的需求会改变:
- 要求输入1-5,输出是工作日
- 输入6-7,输出休息日
我们可以在每个case 后面都重复一遍工作日,然后再跳出,但是这样我们会重复大量的工作,怎样才能更简洁一些呢?
//示范1:
#include<stdio.h>
int main()
{
int day = 0;
switch (day)
{
case 1:
printf("工作日\n");
break;
case 2:
printf("#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;\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;
我们该怎么做呢,让我们来操作一下!
//示范2:
#include<stdio.h>
int main()
{
int day = 0;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
}
default :
printf("输入错误,请重新输入");
break;
return 0;
}
由示范2我们可以轻易对比出,break在switch语句中的重要作用,输入1-5如果没有break跳出,将会继续执行下面的语句,直到遇见break才会跳出
2.2default子语句
表达式中的值没有与case匹配的标签,会产生什么效果呢?
其实会跳过全部语句,程序也不会停止报错,这只是情况想的不全面所造成的,我们该怎么解决这个问题呢?
- default:是通过判断常量表达式,发现没有匹配的case标签,会通过default标签,执行它后面的语句,但是需要注意,每个switch语句中只能有一个default子句,它可以出现在语句列表的任何位置,可以在case语句上面,也可以在case语句下面.
这里也有一个编程好习惯,对于default子句来说,它可以不加break,但是加上一个break可能会更好.
说了怎么多让我通过下面代码练习一下吧!
#include<stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default :
break;
}
printf("m=%d n=%d\n", m, n);
return 0;
}
- 这里switch语句式支持嵌套使用的,练习上述代码,思考一下,switch语句的用法,你的答案是否正确来对照一下吧!
![](https://img-blog.csdnimg.cn/a4f812d6b96a4c1c8599db39755c1bad.jpeg#pic_center%29)
总结
✨✨✨各位读友,本篇分享到内容是否更好的让你理解了选择与分支,如果对你有一点帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!