【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

这篇具有很好参考价值的文章主要介绍了【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

君兮_的个人主页

勤时当勉励 岁月不待人

C/C++ 游戏开发


Hello,这里是君兮_,今天又来给大家更新0基础学习C语言中的文章啦!
今天带来的是对分支语句的详解,初学者建议先看看总集哦,
这里是链接:

【C语言初阶】万字解析,带你0基础快速入门C语言(上)
【C语言初阶】万字解析,带你0基础快速入门C语言(下)

一.什么是语句?

就像英语有语法语句一样,C语言也同样有语法语句

  • C语句可分为五类:
    【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

  • 咱们今天要讲的就是这五种语句中的控制语句
  • 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。
    可分成以下三类:
  • 1. 条件判断语句也叫分支语句:if语句、switch语句;
  • 2. 循环执行语句:do while语句、while语句、for语句;
  • 3. 转向语句:break语句、goto语句、continue语句、return语句。

二.分支语句(选择结构)

人生中有有各种各样的选择,每个选择都会走向不同的道路,但是一旦选择了,就没有回头路可走了,我希望在看这篇博客的你,能够慎重的进行人生中的每一个选择

  • 不扯远了,画个图让大家理解一下选择语句:

【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

  • 这就是选择!!!
  • 免责声明:博主不是尬黑原神,博主自己就是开服60级老履刑者
    【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

1.If语句

  • if语句最最基础的选择语句
  • 下面是具体的语法结构

if(表达式)

语句;

if(表达式)
语句1;

else
语句2;

多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;

  • 代码演示

//代码1
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
	}
}
//代码2

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
	}
	else
	{
		printf("成年\n");
	}
}
//代码3

int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("少年\n");
	}
	else if (age >= 18 && age < 30)
	{
		printf("青年\n");
	}
	else if (age >= 30 && age < 50)
	{
		
			printf("中年\n");
	}
	else if (age >= 50 && age < 80)
	{
		printf("老年\n");
	}
	else
	{
		printf("老寿星\n");
	}

}

C语言规定:
在C语言中,0为假,非0为真

  • if后的括号中是判断是否进入if的条件。如果判断表达式中的结果为真,就执行语句中的内容。
  • 其中,当if中的条件不满足时,当有else if就会进入else if进行第二次判断,如果else if的条件也不满足,才会进入最终的else中。

If语句的嵌套使用

  • 其实没什么难以理解的,就是在if语句中再套一层或者几层if语句实现我们更加精准的选择
int main()
{
	int m = 1;
	int n = 2;
	if (m == 1)
	{
		if (n == 2)
		{
			printf("Hello\n");
		}
		else
		{
			printf("你好\n");
		}
	}
	return 0;
}

If语句中一些需要注意的小细节

  • 1.上面代码中的else都是与最近的if匹配的,可不要在嵌套if中搞错了else匹配的对象。
  • 2.注意哦,在if语句中,后面的“{}”是可以省略的,就像这样:
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
		else
			printf("haha\n");
	}
	return 0;
}
  • 但是这里博主墙裂不推荐这么写哦,这里指出是防止以后你看到某些代码中没加"{}"以为它是一个错误

  • 不推荐原因:

  • 1)注意这里的if语句只能控制下一行代码的执行,如果你错误的输入了几行代码,就会像这样
    【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了
    看到了嘛,我们的b明明不等于2还是打印了gg,当我们的代码一多起来,就很容易因为不注意这里未加“{}”而写出bug

  • 2)作为一名合格的程序猿,好的代码风格是非常重要的,咱们的代码不仅要让自己看懂,还得让别人看懂。当你写出1)中的代码时,其实就不算一个非常好的代码风格,同时也十分容易出bug。

  • 3.一些好的代码风格分享
    比如以下代码就有非常好的代码风格:

int num = 1;
if(5 == num)
{
  printf("hehe\n");
  • 我相信你也出现过这种错误,明明判断某个变量是否等于某个值,但是一不小心少写了一个“=”,变成了把某个值直接赋给了某个变量
  • 以上代码出现这种情况时就会直接报错提醒你哦
    【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了
  • 这种即能让我们看懂又能帮助我们找bug的代码风格就是非常好的代码风格!!!

2.switch语句

switch语句也是一种分支语句。
常常用于多分支的情况

  • 比如:
    输入1,输出星期一
    输入2,输出星期二
    输入3,输出星期三
    输入4,输出星期四
    输入5,输出星期五
    输入6,输出星期六
    输入7,输出星期日
  • 如果此时咱们还是写成if else的语句形式当然也可以实现,但是由于咱们的选择分支过多使用if语句是不是有点太复杂了?这时候switch就闪亮登场啦!!!
  • switch语句的基本语法结构

switch(整型表达式)
{
语句项;
}

  • 什么是语句项呢?
  • 是一些case语句
    如下格式:

case 整形常量表达式:
语句;

在switch语句中的 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;
}

有时候我们的需求变了:
1. 输入1-5,输出的是“weekday”;
2. 输入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;
}

【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

  • 也就是说在switch-break语句中,不碰到break是不会停下的,我们可以通过以上这种用法来实现几个分支结果的合并。

编程好习惯:
在最后一个 case 语句的后面加上一条 break语句。
(之所以这么写是可以避免出现在以前的case 语句后面忘了添加 break语句最终导致switch语句停不下来的情况)

Switch语句中的default

如果表达值与所有的case标签的值都不匹配怎么办?
其实也没什么,结果就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

  • 你可以在语句列表中增加一条default子句,把下面的标签
    "default:"写在任何一个 case 标签可以出现的位置。
  • 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
    因此,每个switch语句中只能出现一条default子句。
  • 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

编程好习惯
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

  • 上面的讲解可能有点抽象,我们还是看代码来理解一下吧
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("选择错误,请重新输入");
	    break;
	}
	return 0;
}
  • 注意到以上两个代码的不同了吗?由于一个星期只有7天,当我们在最后加上default后,输入不满足1~7的数就会报错,这就是default的作用。
    【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

switch的嵌套使用

  • 与If语句一样,switch语句也能嵌套使用达到多分支精准选择的作用
  • 话不多说,用代码解释
int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n)//switch嵌套使用
		{
		case 1:
			n++;
			break;//注意,switch嵌套中的break只会跳出一层switch
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);
	return 0;
}

【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

  • 这里输出结果对于很多人来说都很容易理解就不多解释了。如果你没看懂,一步步结合我上面讲解的知识再试着看看,还是看不懂可以在评论区提出你的疑问或者私信我哦,对于初学者刚开始实在理解不了没啥好丢人的,毕竟博主最开始看的时候也没看懂。。。
    【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了

总结

  • 以上就是今天要讲的所有内容了,这么听下来是不是感觉分支选择语句也没啥难的?
  • 其实在实际应用中只要你注意到我上文提到的那些小细节以及养成好的编程风格,那么分支语句这部分就难不倒你
  • 最后,如果你对文章的内容有任何疑问欢迎在评论区提出或者私信我哦。

创作不易,如果感觉文章内容对你有帮助的话,不妨点个三连再走呗。
你们的支持就是我创作的动力,再次感谢大家的支持,下次再见啦!

(可莉请求你们三连支持一下博主!!!点击下方评论点赞收藏帮帮可莉吧!)

【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了文章来源地址https://www.toymoban.com/news/detail-515095.html

到了这里,关于【C语言初阶】分支语句If与switch的具体用法,有这篇博客就够了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言初阶】 分支语句 if 的全面介绍

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,相信大家都多多少少了解过if语句吧,但是你真的有了解过,所有if语句的细节吗?学完这篇文章你将知道if语句的所有知识

    2024年02月13日
    浏览(47)
  • 《C语言初阶》这篇文章带你全面认识switch语句的用法!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的switch语句的全面讲解!    ⛳️ 预计博主这俩天会把分支语句和循环语句给彻底

    2024年02月12日
    浏览(48)
  • 九、程序的流程结构(if分支语句,Switch分支,for循环)

    程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。 顺序结构:从上向下,逐行执行。 选择结构:条件满足,某些代码才会执行。0-1次 ​ 分支语句:if,switch,select 循环结构:条件满足,某些代码会被反复的执行多次。0-N次 ​ 循环语句:for 语法格式: 示

    2024年02月07日
    浏览(39)
  • Scala条件分支语句if用法详细介绍

    在Scala中,控制结构语句包括条件分支语句和循环语句。其中,条件分支语句有if语句、if…else 语句、if…else if…else 语句以及 if…else 嵌套语句;条件分支语句的用法介绍如下: 1.if格式的语法格式 2.if…else 语句的语法格式如下: 3.if…else if…else 语句的语法格式如下: 4.if…

    2024年02月13日
    浏览(53)
  • 【C语言初阶】switch语句的基本语法

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的switch语句的全面讲解!    ⛳️ 预计博主这俩天会把分支语句和循环语句给彻底

    2024年02月14日
    浏览(37)
  • 【30天熟悉Go语言】7 Go流程控制之分支结构if、switch

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 3 Go编程规约和API包 4 Go的变量、常量、运算符 5 Go 基本数据类型 6 Go 复杂数据类型之指针 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html if 语句由布尔表达式后紧跟一个或多个语句组

    2024年02月09日
    浏览(38)
  • 【精通C语言】:分支结构if语句的灵活运用

    🎥 屿小夏 : 个人主页 🔥个人专栏 : C语言详解 🌄 莫道桑榆晚,为霞尚满天! C语言中的控制语句是程序设计中不可或缺的重要组成部分。从简单的if语句到复杂的多分支结构,掌握这些语句对于编写高效、灵活的程序至关重要。本文将深入探讨C语言中控制语句的各种形

    2024年01月23日
    浏览(34)
  • 初阶C语言-分支和循环语句(下)

    “花会沿途盛开,以后的路也是。” 今天我们一起来继续学完分支语句和循环语句。 3.4.1 do语句的用法 在前面,我们学过了用 while循环 和 for循环 在屏幕上打印1~10的数字,那么在 do...while()循环 中,如何实现这步操作呢? 接下来,让我们用一张图了解一下 do...while()循环 的

    2024年02月15日
    浏览(57)
  • C语言if判断语句的三种用法

    一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 C 语言中 if 语句的语法: 如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。 C 语言把任何非零和非空的值假定为 true,把零或 n

    2024年02月06日
    浏览(64)
  • 「PHP系列」If...Else语句/switch语句

    PHP 中的 if...else 语句是用于根据条件执行不同代码块的强大工具。这种结构允许你基于某个条件(通常是布尔表达式)的结果来决定执行哪一部分代码。下面是对 if...else 语句的详细解释以及一些示例。 示例 1:基本 if…else 结构 在这个例子中,如果 $number 大于 5,将输出 “

    2024年04月27日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包