学习记录——分支与循环

所学知识

分支语句

if语句

if与else的使用

if是可以单独使用的,以年龄为例子。如图所示:

在这里插入图片描述
双if的使用ps:双if是每一个if都会进行判断,依次对if进行判断,互相之间不会影响;

我们来看看if与else的搭配使用:

#include<stdio.h>
int main()
{
	int age=20;
	if(age>=18)
		printf("成年了\n");
	else//表示小于18的情况
		printf("未成年\n");
	return 0;
}

else的意思是另外一方面、其他。表达的是相反的情况。

我们再来说说当语句要执行多条代码时的情况,以打印数字为例:

#include<stdio.h>
int main()
{
	int i = 1;
	while (i < 10)
	{
		i++;
		if (i == 5)//if要执行printf与break
		{
			printf("%d ", i);
			break;//跳出循环
		}
	}
	return 0;

语句只执行一条代码,可以不用加代码块,如果要执行多条语句,则要加上代码块。而且执行代码与语句之间,遵循就近原则。

if与else if的使用

if与else if的区别:if可以只要满足条件就执行,但是else if会发现即使第一个执行了,第二个满足条件依然不会执行。如图所示:

在这里插入图片描述

switch语句

做选择可以使用if语句,但是如果选择太多,if语句使用起来就会很繁琐,这个时候就需要一个能将代码简化的语句,也就是switch语句

#include<stdio.h>
int main()
{
	int day;
	scanf("%d",&day);
	switch(day)//要整形参量
	{
	case 1://第一种情况
	printf("星期一\n");
	case 2://第二种情况
	printf("星期二\n");
	case 3:
	printf("星期三\n");
	case 4:
	printf("星期四\n");
	case 5:
	printf("星期五\n");
	case 6:
	printf("星期六\n");
	case 7:
	printf("星期天\n");
	
	}
	return 0;
}

那么接下来,是不是只要我输入1就打印星期一呢? 让我们试试

在这里插入图片描述

很显然结果并不是我们想要的,他把其他情况也一起打印来了了,这时好就要用我们的 break语句了。break语句:当switch语句运行时遇到break关键字时会跳出,意思就是当语句运行到break时就不再运行了,接下来剩下的case语句也不会再执行,switch语句结束。此时的打印结果,就是我们想要的到的。

在这里插入图片描述

大多数情况下这么输入1-7是没错的,但是万一输入了其他数字该怎么办?
这种时候就要用我们的default语句。
default的作用就是当表达式的值和常量值全部对比过之后,如果没有匹配的就会输出default后的语句。default语句的ps:default可以随意放置。

在这里插入图片描述
另外情况之间是没有顺序区分的。输出结果,如图所示:

在这里插入图片描述

接下来我如果要表示星期一到星期五都是工作日,星期六到星期天是休息日,要这么表达呢?

#include<stdio.h>
int main()
{
	int day;
	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;
}

是这样吗?这样也可以,但是太繁琐了,有重复的情况。稍微简化一下,如下图所示

#include<stdio.h>
int main()
{
	int day;
	scanf("%d",&day);
	switch(day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
	printf("工作日\n");
	break;
	case 6:
	case 7:
	printf("休息日\n");
	break;
	}
	return 0;
}

我们把重复的情况删除了,这下变得更简洁了。

循环语句

while语句

while语句的语法与使用

首先我们先来看看while语句,为了解了语法结构,下面我写一个简单的小程序,通过while循环来打印1-10数字。运行代码如下:

#include<stdio.h>
int main()
{
	int i = 1;//循环变量
	while (i < 10)//判断条件
	{
		printf("%d ", i);
		i++;//循环体
	}
	return 0}

输出结果如图:

在这里插入图片描述
其中i++是我们循环的关键,如果没有i++循环会变成死循环,如图:
在这里插入图片描述
为什么会出现死循环呢?原因是i++表示的是每循环一次就对循环变量增加1。i++可以写成i=i+1或i=+1。当然了i++并不是一成不变的,我们也可以每循环一次就对循环变量进行加减乘除,如;i=+2,i=*2。

break在while语句中的使用

break的使用:我们知道break语句是当程序运行到break语句后会结束循环。下面我还是以上面代码结合if语句为例,加入break语句。

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

这段程序的意思是,当我循环到第五次时,就跳出循环,并且打印1-4的数字结果如图:
在这里插入图片描述
为什么是1-4?不是1-5呢?我们说过break语句后会结束该次循环,第五次的printf被跳过去了,整个循环结束。

contiune在while语句中的使用

continue的使用:continue是用于终止本次循环的,本次循环中continue后边的代码不会再执行,进行下一次循环。

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

最后的结果是什么呢,是1-4,还是12346789?,下面我们来揭晓答案

在这里插入图片描述
没想到吧,两个都不是,而是1+4的死循环,但是,为什么会出现死循环呢?前面我们说到continue是用于终止本次循环的,本次循环中continue后边的代码不会再执行,进行下一次循环。在我们的列子中当i为5时,执行continue,不仅跳过printf,还跳过了i++,导致我们的循环变量i一直是5,continue一直执行。
那我们应该怎么解决这种情况呢?其实很简单把i++往前调就行了,也可以是使用我们我们后面要说的for循环。

把i++调到前面,结果如图:

在这里插入图片描述

我们在来看看for循环,这就很好避免了i++被跳过去出现死循环的情况,结果如图:
在这里插入图片描述

for语句

for语句的语法与使用
for(表达式1; 表达式2; 表达式3)
{
        循环语句;
}

表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。

我们还是以打印1-10为例子

在这里插入图片描述

break在for语句中的使用

break语句在while循环和for循环中的效果是一样的,都是终止其所在循环语句。
在这里插入图片描述

continue在for语句中的使用

continue语句在for循环中的代码以及与运行结果:

在这里插入图片描述

do……while循环

do while循环与while循环的语法类似,不同的是do while循环至少会执行一次循环体内的内容。因此使用场景有限,不是经常被使用。下面是在屏幕上输出1-10数字,使用do while循环的代码

#include <stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
}
do…… while循环中的break语句

break语句:

#include <stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i==5)
			break;//就进原则
		printf("%d ", i);
		i++} while (i <= 10);
	return 0;
}
do ……while循环中的continue语句

continue语句:

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

总结

本篇博客依次介绍了if语句,switch语句、while循环、for循环以及do while循环,他们之间是可以嵌套使用的,是C语言语法中很重要的一环,希望看完了本篇博客可以让你有些许收获。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

年轻的小冤种在刷代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值