选择控制结构if,switch详解——总有一些你不知道的小细节!

本文详细介绍了选择控制结构中的if、elseif和switch语句,阐述了它们的区别与应用场景。if和elseif的主要区别在于elseif能将所有条件结合,形成整体的选择判断,而if的else只与最近的if匹配。switch语句则通过case关键字进行匹配,遇到break会退出当前case,continue则用于跳过后续步骤。文章还通过实例演示了break和continue的使用效果。
摘要由CSDN通过智能技术生成

说到选择控制结构可能很多人都会立即联想到if语句。没错,他确实是一个很常见并且实用性很高的程序语言。但是你知道if和else if之间的区别吗?你知道switch中的continue的使用方法吗?在这篇博客中我就来向大家介绍一下选择控制结构的详细内容。

1.if语句

首先我们来认识一下最简单的if语句,if语句的结构就是if后面顶着一个括号,括号的里面就是选择控制条件,假如你符合条件你就可以执行打括号里面的程序,如果不满足那么抱歉。因为if的使用一般都会和else连接,那么就会起到选择的作用,满足条件进入if之中,不满足条件就进入else之中。其具体内容如下:

#include<stdio.h>
int main()
{
	int number = 0;
	while (1)
	{
		scanf("%d", &number);
		if (number < 10)
		{
			printf("好好学习\n");
		}
		else
		{
			printf("天天向上\n");
		}
	}
	return 0;
}

但是经过尝试你就会发现假如想进行多个条件的选择就会感觉很困扰,因为else只会和最近的if相匹配,也就是说上面的条件不管符不符合都会在最接近else的if之中进行2选1操作。效果如下:

如上图输入内容为5,我们想要的效果只是输入好好学习,但是他又在下面的if,else之中选择了一个并且输出,使我们的输出效果不理想。那么我再来向大家介绍下一种else if语句 

 2.else if语句

else if语句就很好的解决了上面的问题,我们可以很好的发现,只要将第二个if改为else if之后就会出现我们想要的输出效果。

即与我们的选择控制条件完全相符。else if的其他使用方法和我们if语句完全相同,那么为什么会造成这种现象呢?接下来我就来给你讲一讲if和else if之间的区别。

3.if和else if之间的区别

有我们上述的例子可以得出:if 和else if最大的区别其实是能否与下列选择结构相连接。单纯的if语句中else 只能和最近的一个if进行连接,起到一个选择判断的作用,之前的全部if 条件与后面的else无关。而else if则与if完全不同它是将所有的选择条件都结合了起来,形成了一个整体。这个整体通过不同的条件进行选择判断并指定输出,你可以想象成if else这是一对要是不自带else那么就只能就近原则找伴侣,假如自带else那么最后的一个else会一直想上找,直到找到一个合适的伴侣为止,然后刚配成对的if 和else中间的就是所有的选择条件。

那么这两者的区别有什么用呢?很明显,当你的目的需要多个if语句进行操纵的时候但是这些if语句又是各个部分连接起来的你就可以写成嵌套式选择判断语句

#include<stdio.h>
int main()
{
	int number = 0;
	int old = 0;
	while (1)
	{
		scanf("%d %d", &number,&old);
		if (old < 23)
		{
			if (number < 10)
			{
				printf("好好学习\n");
			}
			else if (number > 23)
			{
				printf("加油\n");
			}
			else
			{
				printf("天天向上\n");
			}
		}
		else
		{
			printf("好好工作\n");
		}
	}
	return 0;
}

 当你熟练掌握之后,以后你再也不会因为if或else if的错误使用而被系统逼着改正了。

4.switch语句

对于switch语句的学习我们首先要了解的就是他的结构:

#include<stdio.h>
int main()
{
	int i = 0;
	while (1)
	{
		scanf("%d", &i);
		switch (i)
		{
			case 1:
				printf("a\n");
				break;
			case 2:
				printf("b\n");
				break;
			case 3:
				printf("c\n");
				break;
			default:
				printf("输入错误,请重新输入\n");
		}
	}
	return 0;
}

 上面就是我们switch语句的大致格式,有几点必须指出:case与条件之间必须有空格,假如条件是字符类型记得用单引号进行引用。其中我们来将break的重要作用和continue的使用来着重强调

break的重要作用

break顾名思义它的作用就是打破一直进行的事情,我们先来介绍switch进行的流程,首先switch由switch后面的表达式进行判断符合case后面的常量就进入本次执行的语句序列。之后遇见break才会退出,否则依次进行后面的操作,也就是说,假如case 1执行过后没有加break会继续执行case 2等步骤。因此我们可以在适当的时候加入break达到想要的结果。

#include<stdio.h>
int main()
{
	int i = 0;
		while (1)
	{
		scanf("%d", &i);
		switch (i)
		{
			case 1:
				printf("a\n");
			case 2:
				printf("b\n");
				break;
			case 3:
				printf("c\n");
				break;
			default:
				printf("输入错误,请重新输入\n");
		}
	}
	return 0;
}

 如上图,case1和case2之间没有break则同时输出a和b。上面就是break的用法,下面让我们认识一下continue的用法吧。

continue的作用

continue的作用是当程序进行到continue的时候就会跳过continue后面的步骤直接进行下一个循环。

#include<stdio.h>
int main()
{
	int i = 0;
			while (1)
		{
			scanf("%d", &i);
			switch (i)
			{
				case 1:
					printf("a\n");
					break;
				case 2:
					printf("b\n");
					continue;
				case 3:
					printf("c\n");
					break;
				default:
					printf("输入错误,请重新输入\n");
			}
			printf("你好\n");
		}
		return 0;
}

由上面的程序可以知道,当程序执行到

case 1时会打印a和你好

但是输入值为2时就会跳过你好的 打印

这就是continue的效果跳过下面所有的程序步骤

结构图如上述所示,continue循环常用于一个想在某个特定步骤跳过以下操作的程序,对于程序量大的程序会起到意想不到的效果。 

上面就是我们本次博客的全部内容了,希望对你有所帮助,祝您天天开心。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿白逆袭记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值