分支和循环(1)

分支和循环(1),第1张

分支和循环(1)

文章目录
    • 分支和循环(1)
  • 前言

    • 一、顺序结构是什么呢?


    • 二、选择结构是什么呢?


    • 三、循环结构是什么呢?


    • 四、分支语句和循环语句

        • (1).分支语句
        • (2). 循环语句
        • (3).什么是语句呢?
        • (4). if语句
        • (5). switch语句
        • (6). while循环
  • 总结


前言

C语言是一门 结构化 的程序设计语言
在生活中无非也就是三种结构
1.顺序结构
2.选择结构
3.循环结构



一、顺序结构是什么呢?

就好比生活中我们要去商店,那么我们是不是从家走到商店就好了呀,对啦这样的就是顺序结构。



顺序结构就是这样,要干一件直接从开始干到结束,中间不会做一些选择之类的


二、选择结构是什么呢?

选择结构呢,就比如我们去我们去商店买东西,在买东西的时候我们会发现另一件商品也很好,
这样我们就会有选择,可能选第一个也有可能选择第二个,这就是选择结构。



三、循环结构是什么呢?

循环结构,就是比如我们每天都会干某件事,好比学习,我们每天都会学习这就是种循环。



还有一种循环就是,我们日复一日的学习,突然有一天学成了,出息了,那我们可能就不会学习了,
这样就跳出了循环。



四、分支语句和循环语句 (1).分支语句

  • if
  • switch
(2). 循环语句
  • while
  • for
  • do while
(3).什么是语句呢?

C语言中由一个分号 ; 隔开的就是一条语句。


比如

#include 
int main()
{
	int a = 0;
	return 0;
}

如果这里不加分号 编译器会报错,编译不过去的,想解决只要加上分号就可以

那么大家来看,这个是不是语句呢?
有人会说是,也有人会说不是,那么它到底是不是呢?
答案:是,只不过啊它是一个空语句什么都没有
有的人说了:那它在这有什么价值呢?
有的代码需要这么一个语句,但是呢不需要执行什么,这时候啊就会用到空语句。


(4). if语句

if语句的语法是什么样的呢?
语法结构:

if(表达式)
	语句;

如果表达式计算结果为真执行语句

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

如果表达式计算的结果为真执行语句1,否则执行语句2

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

如果表达式1成立那么语句1就会被执行,另外如果表达式2成立那么执行一下表达式2,如果表达式2都不成立那么走
else执行语句3
注: 三个语句只能执行一个。


代码如下 (示例):

#include 
int main()
{
	int age = 12;
	if(age < 18)//判断表达式
		printf("未成年\n");
	return 0;
}


这里的age是不是小于18呀,那么输出的就是未成年。



如果我们把age改成20

大家看是不是什么都不输出呀,因为什么呢?
这里的age是20,20小于18表达式为假,所以什么都不输出,这就是单分支if

再说说if else
代码如下 (示例):

#include 
int main()
{
	int age = 20;
	if(age < 18)
		printf("未成年\n");
	else
		printf("成年\n");
	return 0;
}

大家看这里输出的就是成年,同理如果我们把 age改成12它就会输出未成年

其实if语句是没有什么难点的,重点是if后面的那对()。



还有就是有的人呢,在写if语句的时候明明看着没有错误,但是给你d了一个

不要着急,有时候写着写着就习惯性自己在if(age < 18);加上了 分号
代码如下:

我们只需要把 ; 分号去掉即可通过编译,不要问我怎么知道的,说多了都是泪…

多分支的if
代码如下 (示例) :

#include 
int main()
{
	int age = 12;
	if(age < 18)
		printf("未成年\n");
	else if(18 <= age < 27)
		printf("青年\n");
}

大家是不是看着这里的else if有些奇怪呀,看着也没什么问题,但是在这里是不行的
我把其他的屏蔽掉给你们看一看哈


大家一定好奇为啥还会输出青年呢?
那是怎么执行的呢?

它会先执行圈起来的,但是age是12这样条件就为假了呀
为假就是0,然后到箭头这一步( 0< 27)这个条件为真,结果就是输出青年
那么正确的要怎么写呢?
代码如下 (示例):

#include 
int main()
{
	int age = 51;
	if(age < 18)
		printf("未成年\n");
	else if(age >= 18 && age < 27)//&&  并且
		printf("青年\n");
	else if(age >= 27 && age < 49)
		printf("壮年\n");
	else if(age >= 49 && age < 90)
		printf("老年\n");
	else
		printf("长寿\n");
	return 0;
}


看这里就输出了老年,这就是正确的多分支if的用法。



注:在C语言中,0表示假,非0表示真

悬空else
代码如下 (示例):

#include 
int main()
{
	int a = 0;
	int b = 2;
	if(a == 1)
		if(b == 2)
			printf("hehe\n");
	else
		printf("haha\n");
	return 0;
}

它是输出haha还是hehe呢
下面是在编译器上敲出来的给大家看看有什么不同

大家是不是发现这里的else缩进来了呀,那我们打印一下看看结果是haha还是hehe

什么都不输出,难道是else位置不对?那我们改一下

我们发现改了else的位置也还是什么都不输出。



那么我们说呀,else只和最近的if进行匹配
用代码来给大家看一下:


咱们看到了代码,发现图一不是已经配对了嘛,那为什么还什么都不输出呢?
因为这里a = 0 if的条件是(a == 1) ,这里a不等于1,所以为假,如果if语句都没进去的话,那么if else更不可能进去
所以什么都不输出。


(5). switch语句

switch的语法是什么呢?

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

语句项又是什么呢?
是有些case语句:
如下:
case 整型常量表达式:
语句;

switch语句也是一种分支语句。


常常用于多分支的情况:
比如:

输入1输出星期一
输入2输出星期二
输入3输出星期三
输入4输出星期四
输入5输出星期五
输入6输出星期六
输入7输出星期天

代码如下 (示例):

#include 
int main()
{
	int day = 0;
	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;
}

那么我们输入一个2,来看一下结果

我们看,这怎么输出了星期二它 并没有停止呀,我们想要的是输出一个星期二就结束的
这时候我们要用到break,break是终止停止的意思,它可以直接跳出switch语句
我们来看一下效果

这里就只输出了一个星期二,达到了我们想要的样子,这里 也可以把每个语句后面都加个break
这样我们想表达那个都可以了,这就是switch语句。



这么看是不是有点麻烦呀,把1-5改成工作,6-7改成工作日,我们要怎么写呢 ?
代码如下 :

可以这样写来写,一样可以来执行,case后面不一定要有break
还有一种是什么呢,如果我们让别人来输入一个值的话,他输入了一个人9,但是这个9已经超出
它处理的范围了,那么我们怎么办呢,在switch里面有这么一种处理方式
可以在后面加上一个default 如果1-7都不能进去的话那我们就走 default默认这种情况,
代码如下:

这里会给你提示错误,所以呀,以后在写的switch语句时候超出处理范围了,就会给出提示。


(6). while循环

while的语法

//while后面的表达式为真才会执行循环
while(表达式)
	循环语句;

举个例子:
我们能不能写一个打印1-10的循环呢?
代码如下:
是不是很好的在屏幕上打印了1-10呀,这就是一个简单的while循环。



那么循环里面会不会 遇到break呢? 相反会不会遇到继续呢?都有什么作用呢?
答案是:会的
那我们先来看看break在循环里的作用
代码如下:

大家发现了没有,这里原来是打印1-10的呀,怎么遇到brak就打印1-4了呢
当我们在循环里遇到break的时候不管它后面还要循环多少次,都会突然停止,循环不在继续
这就是循环里break的作用。



那continue呢?
continue是继续的意思 ,那么它有什么作用呢?
代码如下:

这里还是1 2 3 4呀,没有变啊,但是它后面的光标还在闪,说明程序还没有结束
当它在屏幕上打印了1 2 3 4 之后陷入了死循环
continue的作用就是再循环里有机会执行到continue的时候它后面的这一次循环和代码
将不在继续,会跳过本次循环后面的代码。


总结

以上就是今天要讲的内容希望大家可以看懂,还剩下两种循环会在分支和循环(2)中分享给大家,这是我的第二篇博客,希望大家多多支持,谢谢大家。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/569100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存