【C语言】详解分支语句与循环语句(1)

文章目录


今天就先来唠唠分支语句吧

在正文开始之前,先让我们了解一下什么是语句:在C语言中,由一个分号;隔开的就是一条语句,
例如:

printf("haha");

现在我们正式开始

分支语句

分支结构也就是选择结构,就像是在人生的岔路口,有多种选择,每种选择都会产生不同的结果。最常用到的是if语句和switch.

if

if(表达式)
	语句;
else //else也可以没有
    语句;

多分支

if(表达式)
		语句;
	else if(表达式)
		语句;
	else
		语句;

解释一下:如果表达式的结果为真(在C语言中,0为假,非0为真),则执行语句。
如果条件成立,要执行多条语句,这时就要使用代码块了,因为默认情况下,if只执行它后面的一条语句。下面我们来举个简单的例子说明一下。

在这里插入图片描述
是不是感觉很奇怪,100满分的成绩还会输出需加强。对,这时对于这种if条件下的多执行语句我们就要使用代码块了,即用{}括起来。来让我们看看效果。
在这里插入图片描述
这样是不是就对了?
那我们继续研究if中的其它事项
看到if中的多分支情况,我们难免想到它的匹配问题,来,我们继续用最直观的例子来阐述
在这里插入图片描述
哎呦?跟我们我们的预期不太一样,没有想要输出的haha
因为,else总是与离它最近的if匹配,即便你把你想要匹配的if-else对齐写,也没有什么用,就像我们上图展示的那样
通过这个代码我们还要在做几点说明

  1. 注意“=”与“= =”的区别,在C语言中,前者是赋值符,后者才是表示相等的
    建议平常把数字写在前,字母写在后,这样利于区分二者。例如"5= =m”,当你写成5=m时,编译器就会自动报错
  2. 建议在学习初期,建立良好的代码风格,方便自己理清思路与查看
    例如
//代码1
	if (condition) {
		return x;
	}
	return y;
	//代码2
	if (condition)
	{
		return x;
	}
	else
	{
		return y;
	}

这两个代码的运行结果其实是一样的,但是代码二就要比代码一直观很多

switch

switch常用语多分支的循环
例如
输入1,输出一月
输入2,输出二月
输出3,输出三月

如果此时使用if-else,if-else,if…就显得太繁琐,那我们就得有不一样的语法形式,就是switch

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

而语句项就是一些case语句
例如

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

switch中的break
在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。

在这里插入图片描述
遇break语句的实际效果是把语句列表划分为不同的部分,遇见break就不会再程序执行下面的所有语句

如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已
程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个case标签可以出现的位置。
当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行

所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句

最后,再说说编程的好习惯:

  1. 在 case 语句的后面加上一条 break语句
  2. 在每个 switch 语句中都放一条default子句,甚至可以在后边再加一个 break
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值