选择结构----在有限的时间里做出无限的选择

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在日常生活中我们无时无刻不在做着选择-----我们会根据水果店今天苹果的售价,决定我们是否购买水果,或者买多还是买少。假如苹果的价格低且质量较好,我们便会选择多买一些,价格高或者质量下乘,我们就会选择少买甚至不买苹果·。

那么如何在程序中实现选择这一功能呢?诸君请看下文。

提示:以下是本篇文章正文内容,下面案例可供参考

一、条件(选择)结构是什么

如果苹果质量好,我们便购买,否则不好便不买,这便是选择结构的基本思想。
即在特定的条件下,是否符合这个条件,从而决定是否执行下一步操作。比如买水果,小蕊去买水果,小蕊只有五块钱,苹果的价格是十元一斤,梨子的价格是四元一斤,小蕊非常痴迷于整数,一定要买整数斤的水果,5 <10---->小蕊买不到苹果;5 > 4---->小蕊可以买梨子。小蕊的零花钱作为基数,梨子和苹果的价格作为小蕊是否可以购买他们的条件,这便是选择。

二、条件结构的使用步骤

1.if语句的使用

1. 1 单个if的使用

/*if语句的使用*/
#include <stdio.h>
int main(void)
{
	int n = 0;
	scanf("%d", &n);
	if (n >= 5)
		printf("n >= 5");
	return 0;
}

如图,当用户输入的n大于等于5时(即满足这个条件时),编译器才会在屏幕上打印“n >= 5”这句话,n不满足时,则没有任何输出。
那么问题来了,倘若n不满足“n >= 5”这个条件时,即n < 5时,我们也要编译器做出相应的输出,那该怎么办呢?——借助if else语句

1.2 if - else的使用

/*if-else语句的使用*/
#include <stdio.h>
int main(void)
{
	int n = 0;
	scanf("%d", &n);
	if (n >= 5)
		printf("n >= 5");
	else
		printf("n < 5");
	return 0;
}

如图,使用else语句后,当输入的n小于五时,便会在屏幕上打印出这样一句话“n < 5”。
else就像if的反面,如果n不满足if中的条件A,那么就是非A,便会进入else。

1.3 else - if的级联形式使用

倘若不止A与非A这两种情况呢?那就要用到else-if语句了

/*else - if语句的使用*/
#include <stdio.h>
int main(void)
{
	int n = 0;
	scanf("%d", &n);
	if (n >= 5)
		printf("n >= 5");
	else//n < 5
	{
		if (n > 0)
			printf("0 < n < 5");
		else
			printf("n < 0");
	}
		
	return 0;
}

当在五与非五之间插入了一个分隔点零之后,分隔条件又多了一层。当n小于五时,进入else,else里又嵌套了一层选择,把大于零小于五的数和小于零(自然小于五)的数分隔开来。

实际上这种语句可以简化为

/*else - if语句的使用*/
#include <stdio.h>
int main(void)
{
	int n = 0;
	scanf("%d", &n);
	if (n >= 5)
		printf("n >= 5");
	else if(n > 0)
		printf("0 < n < 5");
	else
		printf("n < 0");
		
return 0;
}

即把一层花括号去掉,写成else-if

2.开关语句----switch语句的使用

当要处理的问题分类很多时,可用Switch语句替换if-else解决问题。因为就像一个个对应开关一样,因此Switch也被称为开关语句。

#include <stdio.h>
int main(void)
{
	int n = 0;
	printf("请输入电梯层数 :\n");
	scanf("%d", &n);
	switch (n)
	{
	case 1:
		printf("一层开");
		break;
	case 2:
		printf("二层开");
		break;
	case 3:
		printf("三层开");
		break;
	default:
		printf("楼层输入错误,请重新输入!");

	}

	return 0;
}

Switch语句的执行步骤为:1.先计算Switch括号中的值。2.拿着Switch括号中的数,把它当做一把钥匙,从上往下去寻找与他对应的钥匙孔——case后面括号里的数据。3.一旦钥匙与钥匙孔里的数据匹配上了的话,便从匹配上了的那个钥匙孔进入——从对应的case进入,并自上而下执行程序,直到遇到break语句。4.倘若Switch括号中的值并未与case中的值匹配(钥匙没有寻找到对应的钥匙孔),直接进入default语句,执行default语句里的内容。

值得注意的是,1. case语句并没有固定的顺序,一般是按照阿拉伯数字的顺序排放case,但如果某个case语句执行次数很多,把这个语句排在第一位也是可以的。2. default语句如果处在Switch语句的结尾,无需加break。就好比公交车到了终点站,车上的乘客不得不下车了一样,若default语句放置在Switch语句的末尾,则Switch已经要结束了,此时添加break已经没有必要了。

在这里插入图片描述

总结

今天介绍了分支语句——if与Switch。作为三大结构的一种,选择结构的重要性不言而喻,Switch与if语句既有相似之处,又有不同之处,在不同的领域各司其职,发挥着不同的作用。
这算是我的第一篇正经介绍的博客,既是一次分享,也是对于自己所学到的知识的反思与复盘,再输出的一个过程。
希望自己可以一直保持写博客的习惯,常复盘反思,带着乐观的心态生活。

我是小桃子,我热爱这个世界。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值