蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!

鱼式疯言:此疯言非彼疯言,而是做完题和实践敲过代码理解并总结出来通俗易懂的大白话,我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念.

本文将重点初步理解分支结构的概念的理解,以及两种分支语句的特点和场景使用。人狠话不多,我们开始吧。

分支结构

一.分支结构是啥?

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、分支(选择)结构、循环结构,C语⾔是能够实 现这三种结构的,今天要学习的分支结构就是其中之一。

鱼式疯言:

就好比因为今天好像要下雨,所以必须要带伞。这就是一个很好的例子
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第1张图片

二.第一种选择语句:if语句

1.if 基本句式

//if ( 表达式 )
 //语句1
#include
int main()
{
	int a = 2;
	int b = (a == 2);
	//判断是否成立时,成立返回1,不成立返回0.
	int d = (a == 3);
	printf("%d\n%d\n", b,d);
    if (2 == a)
	//执行语句a如果等于3就返回非0就 if 执行下面语句
	//反之返回0,if不执行
	{
		printf("我是帅哥\n");
	}
	if (3)
	{
		printf("hehe\n");
	}
	if (0)
	{
		printf("haha\n");
	}
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第2张图片

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第3张图片

鱼式疯言:

<1>. 前面的" == "意思是:“是否相等
<2>. if 是否执行下面的语句,看 () 内是否为 0,为 0 不执行,不为 0 (不一定要为1) 执行 ;
<3>. 如例上所言 : 判断a是否等于 2,返回 10
<4>. if 后接一个语句,可不用花括号,接多个语句时,必须要用花括号接上.
<5>. if () 后面不可接 “;” 建议大家刚入门时,都 if 控制执行无论单语句还是多语句都打上 {} ,以免出错.

<1>错误示例:
#include
int main()
{
	if (2==3)
		printf("haha\n");
		printf("hehe\n");
		printf("dede\n");

	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第4张图片

<2>错误事例
#include
int main()
{
	if (0);
	//等效于——>
	//if(0)
	//; 
	//if直接控制空语句(空语句)
	printf("haha\n");
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第5张图片

鱼式疯言:

如果是赋值是常量放右,变量放左,否则会报错,建议大家在判断部分把常量放在左,变量放右;所以这样可以避免双等号漏写成单等号,导致判断变成赋值,

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第6张图片
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第7张图片
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第8张图片

2.if-else句式

当表达式的值不为 0 的时候执行if控制的语句,当表达为 0 呢?
那我们就不能执行其他语句了么?
这时 else 就控制的语句就派上用场啦,当 if 为 0 就可以执行 else 控制的语句.
下面上代码:

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

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第9张图片
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第10张图片

鱼式疯言:

注意这里我经常犯的错误是 else + (判断)

以下这些都是错误案例
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第11张图片

3.嵌套的if语句

<1> .嵌套结构的基本版本所示:
#include
int main()
{
	int a = 0;
	scanf("%d",&a);
	if (a > 0)
	{
		printf("正数\n");
	}
	//先确定首if的条件a > 0;
	else
	//反之:a<=0再选
	{
		//先判断 a==0
		if (a==0)
		{
			printf("零\n");
		}
		//最后 a < 0。
		else
		{
			printf("负数\n");
		}
	}
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第12张图片

<2>.嵌套结构的简化版本所示:
#include
int main()
{
	int a = 0;
	while (scanf("%d", &a) != EOF)
	{	//方向一:a > 0;
		if (a > 0)
		{
			printf("正数\n");
		}
		else if (a == 0)
			//方向二: a==0
		{
			printf("零\n");
		}
		// 方向三:a< 0。
		else
		{
			printf("负数\n");
		}
	}
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第13张图片

鱼式疯言:

本质上友友们可以这么想:条件之外再分出两个条件---->就等效于三个同等的条件

三.第二种选择语句 : switch语句

1.switch基本句式

//switch (expression) 
//{
// case value1: statement
//case value2: statement
//default: statement
//}
#include
int main()
{ 
	int n = 0;
	while (scanf("%d",&n)!=EOF)
	{
		switch (n)
		//n必须是整数
		{
		case(1):
			printf("周一\n");
			break;
			//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;
        default:
			printf("输入错误\n");
			break;
		}
	}
	
	return 0;
}
<1>错误举例
#include
int main()
{ 
	int n = 0;
	while (scanf("%d",&n)!=EOF)
	{
		switch (n)
		//n必须是整数
		{
		case(1):
			printf("周一\n");
			break;
			//break是停止的意是思
		case(2):
			printf("周二\n");
		case(3):
			printf("周三\n");
		case(4):
			printf("周四\n");
			break;
		case(5):
			printf("周五\n");	
		case(6):
			printf("周六\n");
		case(7):
			printf("周日\n");
			break;
        default:
			printf("输入错误\n");
			break;
		}
	}
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第14张图片

<2>.break

作⽤是⽤于永久的终⽌,只要该行执行了break就终止跳出选择,直接结束.

鱼式疯言:

如果每一情况都是相似的,最好一句后面都加上break,包括dafault后面也如此

<3>break巧妙运用
#include
int main()
{ 
	int n = 0;
	while (scanf("%d",&n)!=EOF)
	{
		switch (n)
		//n必须是整数
		{
		case(1):
		case(2):
		case(3):
		case(4):
		case(5):
			printf("工作日\n");
			break;
		case(6):
		case(7):
			printf("休息日\n");
			break;
        default:
			printf("输入错误\n");
			break;
		}
	}
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第15张图片

<4>.default

在上述范围之外,default就会被执行

鱼式疯言 :

default 不一定要放在最后,可放在任意位置.只是我们习惯

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第16张图片

2.switch判断部分的理解

大家都发现了吧,是不是上面的判断部分是不是都是整数呢?
没错,就是这样的,case(i),这个i必须是整数****常量
如图
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第17张图片

鱼式疯言:

其实我们用字符也是没问题的,但建议大家少用

这时就有小伙伴问了,
字符又不是数字,怎么能用在判断部分呢,这不是和你上面说的相互矛盾吗?
没错,你说的对,但我说的也没错
其实啊!!!
字符啊,本身在计算机内存储的是以二进制整数存储的,所以也就相当于数字。
不信啊,那你往下看–>

#include
int main()
{ 
	char n = 0;
	while (scanf("%c",&n)!=EOF)
	{
	   
		switch (n)
		//n必须是整数
		{
		case('a'):
		case('b'):
		case('c'):
		case('d'):
		case('e'):
			printf("工作日\n");
			break;
		case('f'):
		case('g'):
			printf("休息日\n");
			break;
        }
	}
	return 0;
}

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第18张图片
但是这是有缺陷的 > 不能用 default
一旦用了就会出现以下错误:
蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第19张图片

总结

本文主要讲解分支结构的两种类型: if 和 switch
if 时要注意 {}: 的 使用以及 条件之外 elseif 嵌套的理解使用
switchbreakdefault 的作用以及判断时要用整数的限制.

创作不易,最后希望友友们看到这篇博文,觉得还不错的咱可支持三关下,不妥当的咱评论区指正,希望我的文章能给各位家人们带来哪怕一点点的收获就是小编创作的最大动力

蛙趣,原来30秒可以用鱼式疯言拿捏分支结构啊!!!_第20张图片

你可能感兴趣的:(#,C语言与粉红色回忆,c语言)