C语言分支和循环语句

前言

昨天断更有点小尴尬,今天补上连更两篇
首先今天带来分支和循环语句的教学分享

一、分支语句

  • 分支语句也叫作条件判断语句,包括:if语句,switch语句

1.if语句

a. if语句的语法结构为

if(判断条件)
{
语句1;
}
else
{
语句2;
}
  • 如果判断条件为真,则返回1,执行大括号内的语句1;
  • 如果判断条件为假,则返回0,执行大括号内的语句2。

此外如果有多个情况,可以使用if ……else if…… else的结构
eg

#include <stdio.h>
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (year < 18)
	{
		printf("未成年\n");
	}
	else if (year >= 18 && year < 60)
	{
		printf("壮年\n");
	}
	else
	{
		printf("老年\n");
	}
		return 0;
}

b.if语句的就进原则

if语句总是和最近的else连用,构成一个if语句

在这里插入图片描述
以一个非常易错的代码举个例子

#include <stdio.h>
int main()
{
	int i = 10;

	if (i == 5)
		if (i == 10)
			printf("haha\n");
    else
		printf("hehe\n");
	return 0;
}

猜猜答案是什么吧?
在这里插入图片描述

揭晓正确答案
结果是什么都不输出
你猜对了吗?
将代码放在vs编译器底下看看
在这里插入图片描述
vs自动进行了排版,这下看明白了吧
在这里插入图片描述
控制台显示如上
什么都没输出

到这里,你该明白if语句的就近原则了吧

另外,这里也提醒我们在平时写代码时要注意规范。
这里,推荐一本书,教会大家如何写一手好代码
林锐:《高质量的C/C++编程》
注意跳转过去的那个博主不是林锐博士本人

2.switch语句

switch语句常用于多分支情况

a.switch语句的语法结构

switch(整型表达式)
{
case:value 1;
        break;
case:value 2;
        break;
        ……
default:
        break;

}

**不同的case相当于不同的入口,从switch后面的括号内读取值,搭配相应的入口进入

注意:switch后面的括号中需要一定为整型表达式
且要注意case后面的冒号后面必须为整型常量表达式(int,char,long等)

b.switch语句中的break

写个代码观察有无break的区别

#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
case 1:
printf("余数是1\n");
case 2:
printf("余数是2\n");
}
return 0;
}

运行看看效果
在这里插入图片描述
再看看有break的代码

#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
switch(n%3)
{
case 0:
printf("整除,余数为0\n");
break;
case 1:
printf("余数是1\n");
break;
case 2:
printf("余数是2\n");
break;
}
return 0;
}

运行看看效果
在这里插入图片描述
由此可见使用 break 能够跳出 switch 语句,如果某一个 case 语句的后边没有 break 语句,代码会继续往下执行,有可能执行其他 case语句中的代码,直到遇到 break 语句或者 switch 语句结束。

c.switch语句中的default

default会作为与以上的分支均不符合时的入口。

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	switch (n % 4)
	{
	case 0:
		printf("整除,余数为0\n"); 
		break;
	case 1:
		printf("余数是1\n"); 
		break;
	case 2:
		printf("余数是2\n");
		break;
	default:
		printf("余数是3\n");
		break;
	
	}

	return 0;
}

输入3可以看到结果
在这里插入图片描述
会从与前面均不契合的default进入。

二、循环语句

1.循环语句的分类

循环语句分为三类,分别为while循环,for循环,以及do while循环
这三种循环在大部分情况下可以相互转换
其中,for循环使用最多

2.while循环

a.while循环的语法结构

while (表达式)
{
循环语句;
}

b.break语句

在循环中,当遇到break语句时,就会结束循环

#include <stdio.h>
int main()
{
	int i = 0;
	while (i < 10)
	{
		if (i == 5)
			break;
		printf("%d ", i);
		i++;
	}
	return 0;
}

运行结果
在这里插入图片描述
打印到5的时候直接跳出循环

c.continue循环

当遇到continue的时候,循环就会跳过continue语句后面的代码,直接来到条件判断处
在这里插入图片描述

#include <stdio.h>
int main()
{
	int i = 0;
	while (i < 10)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
		i++;
	}
	return 0;
}

在这里插入图片描述
闪烁的光标,进入了死循环

3.for循环

a.for循环语句结构

for (表达式1;表达式2;表达式3)
{
循环语句;
}

1for (表达式1;表达式2;表达式3)
2 {
3 循环语句;
4 }

__表达式一:__表达式一为初始化部分,用于初始化循环变量的。

__表达式二:__表达式二为条件判断部分,用于判断循环时终止。

__表达式三:__表达式三为调整部分,用于循环条件的调整。

在这里插入图片描述

c.break和continue

在for循环中,break和continue的作用相同,但由于结构的不同,最后的效果也就存在差异。
在这里插入图片描述
如下图在这里插入图片描述
最后的效果也因此存在差异

4.do while循环

a.do while循环的结构

do
{
循环语句;
}
while(表达式);
注意while的末尾有一个分号不能忘记掉
do while循环会先进入循环体,经过一次循环之后,才进入判断

b.break和continue

break和continue和上述作用几乎类似。


ok 第一更完成,第二更马上到。
!!!!!!!!!!!加油,编程人!!!!!!!!!
!期待关注!

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值