学习记录:选择结构与循环结构——选择结构

本文介绍了C语言中的顺序、选择(if和switch)以及循环结构,通过示例阐述了if语句的单分支和嵌套,以及switch语句的多选择特性。同时强调了逻辑关系和特殊情况处理,如else与最近if的关系,以及default和break在switch中的作用。
摘要由CSDN通过智能技术生成

C语言将程序抽象成为三种结构:顺序结构,选择结构与循环结构。

顺序结构被运用于代码的编译与运行。代码被一行一行地有顺序地执行,其实就是应用了顺序结构。

而选择结构与循环结构,则需要程序员使用特定的语句来实现。

选择结构:

有两种基础语句可以实现选择结构:if语句和switch语句

if语句的分支只有两种:是与不是,因而单个if语句是单分支选择结构。

体现在程序中,if语句只判断参数是否为0(如果引入了boolean值,则会判断布尔值是真还是假)

#include <stdio.h>;
int main() {
	int a = 0;
	if (a) {
		printf("是的\n");
	}
	else {
		printf("不是\n");
	}
	a = 1;
	if (a) {
		printf("是的\n");
	}
	else {
		printf("不是\n");
	}
	a = 114514;
	if (a) {
		printf("是的\n");
	}
	else {
		printf("不是\n");
	}
	return 0;
}

 以上代码的运行结果为:

当使用if语句进行嵌套时,便可以实现多分支

例如:输入一个人的年龄,判断这个人所在的年龄段。

#include <stdio.h>;
int main() {
	int a = 0;
	scanf("%d", &a);
	if (0 < a && a < 18)
		printf("少年");
	else if (18 <= a && a < 45)
		printf("青年");
	else if (45 <= a && a < 60)
		printf("中老年");
	else if (60 <= a && a < 90)
		printf("老年");
	else if (a > 90)
		printf("老寿星");

	return 0;
}

需要注意的是:

1.“a大于1小于10”这种式子在C语言中并不写成1<a<10,而是应写成1<a && a<10,这才表示一个“并且”的逻辑。

//当计算机计算1<a<10时,会先判断1<a的真假,并相应地输出1或0,再用1或者0与10比较大小。

2.else只与距离它最近的if语句构成逻辑关系

switch语句本身就是多选择结构,每一个case就是一个分支选择,其余的情况用default涵盖

switch语句中的case决定了代码的入口:

int main() {
	int a = 1;
	switch (a)
	{
	case 1: printf("1\n");
	case 2: printf("2\n");
	case 3: printf("3\n");
	case 4: printf("4\n");
	}

}

以上代码的输出如图所示

需要注意的是,switch的case仅仅决定了代码的入口,并不决定代码的出口(即代码结束的地方),代码的出口由break语句决定。

例如:输入1-7的数字,用switch判读是工作日还是周末休息

int main() {
	int a = 6;
	switch (a)
	{
	case 1: ;
	case 2: ;
	case 3: ;
	case 4: ;
	case 5: printf("工作日");
		break;
	case 6: ;
	case 7: printf("周末休息");
		break;
	}

此时引申出另一个问题,如果a的值不在1-7之间怎么办?

这就需要用到default语句

int main() {
	int a = 6;
	switch (a)
	{
	case 1: ;
	case 2: ;
	case 3: ;
	case 4: ;
	case 5: printf("工作日");
		break;
	case 6: ;
	case 7: printf("周末休息");
		break;
	default: printf("数字不在1到7之间");
		break;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值