分支(选择)语句和循环语句的知识点+例题总结


c语言中分支语句和循环语句

欢迎小可爱们看我的CSDN,让我们一起复习c语言吧~

1.什么是语句?

c语句可分为以下五类:
1.函数调用语句 2.表达式语句 3.控制语句 4.复合语句 5.空语句
其中,控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,c语言有9种控制语句。
可分成以下3类:
1.条件判断语句也叫分支语句:if语句,switch语句
2.循环执行语句:do while语句,while语句,for语句
3.转向语句:break语句,goto语句,continue语句,return语句

2.分支语句

2.1 if语句

语法结构:
if(表达式) //在c语言中0表示假,非0表示真
语句;

#include<stdio.h>
int main()
{int age=0;
scanf("%d",&age);
  if(age<18)
	{
	printf("少年“);
	}
		else if(age>=18&&age<30)
//在这里不可以写成 if(18《=age《=30)此写法不对,此写法是先执行18《=age,根据逻辑运算符,此数值为1,然后简化为1《=30
		
		{
			printf("青年\n");
		}
			else if(age>=30&&age<50)
			{
				printf("中年\n");
			}
				else if(age>=50&&age<80)
				{
					printf("老年\n");
				}
					else
					{
						printf("老寿星");
					}
	return 0;
}

if语句注意事项:若if要控制多个语句,需要用大括号括起来,大括号为代码块if
if与else同在的时候要找好匹配的关系,else与最近的if相匹配

这里打印出结果并非是haha,因为else匹配的是箭头中的if,if else 是一个语句,当a==1不成立,程序未进入代码块,所以什么也不输出哦
如果想要if 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;
}	 	

好啦~ 让我们一起做一个题吧
1,输出1~100的奇数
在这里插入图片描述

2.2 switch语句

switch语句语法:
switch(整形表达式)
{
语句项;
}
case语句如下:
case 整型常量表达式;
语句;
在这里插入图片描述
switch(day)输入几,就是从几开始入口,输入4,则入口为case 4;若只想要输出星期四,则需要break,其功能是实现了switch语句跳出分支。如图所示。
在这里插入图片描述
有时候我们的需求变了:
1.输入1-5,输出的是weekday
2.输入6-7,输出weekend
在这里插入图片描述
2.2.2default子句
注意事项:default可以写在任意一个case标签可以出现的位置,而且语句流会像执行一个case标签 一样执行default子句。
让我们一起做个题吧~
zhengq在这里插入图片描述
正确的答案是m=5,n=3哦,小伙伴们有没有做对呢?做对了说明知识掌握的还不错哦,如果没做对的话,不要气馁哦,来日方长,你我皆是黑马~
让我们看看这道题的过程吧
在这里插入图片描述
想必大家都学会了吧,让我们接着探索循环语句~

3.循环语句

1.while循环
2.for循环(常用)
3.do while循环

3.1 while循环

while的语法结构:类比for循环哦
for(条件) while(表达式)
语句; 循环语句;
在这里插入图片描述本题结果为1,2,3,4,5,6,7,8,9,10

在这里插入图片描述
当i=5的时候,执行continue,程序不再往下执行,这时,i仍然一直是5,然后直接去判断部分,看是否进行下一次循环,所以成为了死循环
while的continue break总结:
while的continue是跳过本次循环的后面的代码,然后直接去判断部分,看是否进行下一次循环
while 的break是永久的终止循环,只要遇到break,循环就停止

在这里插入图片描述
本次i++的位置和上一张图片位置不一致哦,大家要仔细看哦,想必大家都想明白了吧,那让我们在变式一下~
在这里插入图片描述
让我们再来看几个代码吧~
在这里插入图片描述
本代码中只能打印0·9字符的ASCII码值
让我们在这里简单介绍一下getchar的知识吧~
getchar:获取一个字符,获取成功得到字符,否则就得到EOF;其返回类型是int

**

3.2 for循环

在这里插入图片描述
**

3.2.2 for循环的break和continue

**

输出结果为1,2,3,4在这里插入图片描述

**

3.2.3 for语句的循环控制变量

**
给大家几点建议哦~
1.不可在for循环体内修改循环变量,防止for循环失去控制
此处i=5,使for循环失去了控制
在这里插入图片描述

2,建议for语句的循环控制变量的取值采用“前闭后开区间”写法
想必大家应该很好奇什么是前闭后开区间写法,让我们一起带着好奇心看看吧~
在这里插入图片描述当i=0时,i<10不取等,就是开区间
当i<=9s时取等,就是闭区间哦~
3.2.4一些for循环的变种
for(; ; ;)三处均可以省略哦,省略地方说明都是真值,但是判断部分省略后意味着判断部分恒为真
当全部省略时,拿一个例子为例,就可能陷入了死循环(初学者不建议省略,容易出错)
在这里插入图片描述
让我们看一看易错题吧
本题大家要仔细看哦~当判断部分k=0时,这是赋值,不是判断哦,把0赋值给k,赋值为0即为假,循环不执行
在这里插入图片描述

3.3.1 do…while循环

do语句的循环语法:
do
循环语句;
while(表达式);
打印1-10数字:在这里插入图片描述do语句的特点:循环至少执行一次,使用的场景有限,所以不是经常使用
do…while的continue和break使用方法与while相同
好啦~我们的循环和分支语句的讲解就到这里了,感谢大家观看哦

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值