【C语言步行梯】分支语句if...else、switch详谈

2024-03-11 00:36

本文主要是介绍【C语言步行梯】分支语句if...else、switch详谈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

🎯每日努力一点点,技术进步看得见
🏠专栏介绍:【C语言步行梯】专栏用于介绍C语言相关内容,每篇文章将通过图片+代码片段+网络相关题目的方式编写,欢迎订阅~~

文章目录

  • 什么是语句?
  • 引入分支语句(选择结构)
  • if语句
  • switch语句


什么是语句?

C语言由;(分号)隔开的就是一条语句,举个例子↓↓↓

printf("这是一行语句");
int a = 10;//这也是一个语句
;//虽然只有一个分号,但这也是语句,这种语句称为空语句

引入分支语句(选择结构)

生活中,我们有很多需要选择的情况。例如:你想喝品牌的可乐?百事还是可口可乐?为了满足选择需求,C语言就有了分支(选择)结构。
在这里插入图片描述

if语句

在我们坐公交车的时候,如果我们刷的是学生卡,此时卡机就会叫一声“学生卡~”。C语言该怎么实现这样的情景呢?
在这里插入图片描述
那我们就得先来认识一下单分支语句了,它的结构是这样的↓↓↓

if()//括号内填判断条件
{//执行语句
}

以上面学生卡的例子来说,如果是学生卡则在频幕上打印“学生卡”,代码实现如下

if(isStudentCard)
{printf("学生卡~");
}

除了这种分支(选择)的场景,还有这么个场景:我去银行取钱,我的余额是100块,如果我取100,则会取钱成功;如果我取10000,则会取钱失败。
在这里插入图片描述
于是我们就有了双分支语句结构↓↓↓

if()//括号内填写判断条件
{//满足条件则执行这里
}
else
{//不满足条件则执行这里
}

上面的取钱场景可以转化为下面这个代码↓↓↓

//rest表示余额
//money表示要取的钱
if(money <= rest)
{//ATM吐钱
}
else
{//显示余额不足
}

关于if语句,还有最后这一种场景:我们考试的时候100-90分是优秀,89-70分是良好,69-60分是及格,小于60分是不及格。此时需要更多的分支,C语言就引入了多分支语句。它的格式如下↓↓↓

if()//这里填写条件1
{//满足条件1执行这里
}
else if()//这里填写条件2
{//满足条件2执行这里
}
else if()//这里填写条件3
{//满足条件3执行这里
}
else
{//上述条件都不满足,执行这里
}

对于上面按分数划分等级的场景,我们可以写出如下代码↓↓↓

if(score >= 90 && score <= 100)
{printf("优秀\n");
}
else if(score >= 70 && score < 90)
{printf("良好\n");
}
else if(score >= 60 && score < 70)
{printf("及格\n");
}
else
{printf("不及格\n");
}

下面给出一些小tips:

★ps:if…else if…else多分支语句中,可以有多个else if。

★ps:在填写括号中的条件表达式时,如果表达式的值非0,则表示真;如果表达式的值为0,则表示假。

★ps:if、else if、else的后面最多只能接1条语句,如果要接多条语句,需要使用大括号{}将所有语句括起来。

★ps:if…else…的匹配满足就近原则。例如下方代码,else与离它最近的if语句匹配,即与age>=60所在的if语句匹配,形成分支结构。

if(age >= 18)if( age >= 60)printf("长者")
elseprintf("我和age>=60的if语句匹配");

在这里插入图片描述
经过上面的学习,我们拿几道题来练练手,Let’s Go!【读者先自己写写,我们再一起对照对照】

练习1:编写程序判断一个数是否为奇数

#include <stdio.h>int main()
{int num = 0;scanf("%d", &num);if(num % 2 == 1){printf("是奇数\n");}else{printf("不是奇数\n");}return 0;
}

练习2:Jammingpro想喝蜜雪冰城,Jammingpro输入他带的钱的数量,你帮他判断一下他能不能买得起5块钱的柠檬水

#include <stdio.h>int main()
{int money = 0;scanf("%d", &money);if(money >= 5){printf("能买得起\n");}else{printf("买不起\n");}return 0;
}

switch语句

如果我们输入1表示星期一,输入2表示星期二,以此类推。如果使用if…else if…else的语句结构一定能够实现,但实现代码实在是太繁杂了。C语言中的switch语句就派上用场了,我们来看看它怎么判断星期↓↓↓

switch(day)
{case 1:printf("星期一\n");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;
}

其中switch后面的括号中可以填表达式,它将会和case子句后的整型、常量或者表达式进行匹配,如果匹配成功,则会执行对应case子句后面的代码;如果都无法匹配,则会执行default子句后面的代码。

★ps:上面case语句后面的break不可以省略。以day=6为例,它将和case 6相匹配,并打印"星期六",在遇到break语句时,将跳出整个switch语句。假如case 6子句下面没有break,则在打印完“星期六”之后,将会向后继续执行打印“星期日”的操作,直到遇到下一个break语句。

借助switch语句中,如果没有遇到break就会继续向后执行的特点,我们可以实现如下代码。这个代码中,day的数值表示星期,当输入1到5时,则会打印“工作日”;输入6到7,则会打印“休息日”;输入其他内容,则会打印“输入有误”。

switch(day)
{case 1:case 2:case 3:case 4:case 5:printf("工作日\n");break;case 6:case 7:printf("休息日\n");break;default:printf("输入有误\n");break;
}

★ps:default子句可以放在整个switch语句中的任意位置,不一定要放在最后面。

在这里插入图片描述
学完switch语句,那就我们来看一段代码,看看它的执行结果应该是什么【读者先想出结果,再一起对照一下】

int main()
{int n = 1;int m = 2;switch(n){case 1:printf("Jammingpro ");case 2:switch(m){case 1:printf("ccc ");case 2:printf("is ");break;case 3:printf("strong!\n");break;default:printf("nice\n");break;}default:printf("handsome!\n");break;}return 0;
}

揭晓答案的时刻:“Jammingpro is handsome”。
解析:外层的switch语句中,n和case 1自己相匹配,打印完“Jammingpro ”后,由于其后面没有break语句,将继续执行case 2中的内容。case 2中嵌套了switch语句,m和case 2自己想匹配,于是打印了”is “,因为内层case 2子句后面有break语句,将会跳出内层switch语句。外层switch的case 2后面没有break语句,它将继续执行default子句中的内容,打印出”handsome\n“。
在这里插入图片描述

🚩这篇文章结束了~~
如果文章中出现了错误,欢迎私信或留言。(๑•̀ㅂ•́)و✧
有任何疑问请评论或私信哦~~o( ̄▽ ̄)ブ

这篇关于【C语言步行梯】分支语句if...else、switch详谈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796034

相关文章

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁