当前课程知识点:高级语言程序设计 >  选择结构程序设计 >  3.3 用if语句及if语句嵌套实现选择结构 >  用if语句及if语句嵌套实现选择结构

返回《高级语言程序设计》慕课在线视频课程列表

用if语句及if语句嵌套实现选择结构在线视频

用if语句及if语句嵌套实现选择结构

下一节:用switch语句实现选择结构

返回《高级语言程序设计》慕课在线视频列表

用if语句及if语句嵌套实现选择结构课程教案、知识点、字幕

大家好 现在我们一起来学习

用if语句以及if语句嵌套来实现选择结构

那么这一节课呢首先给大家介绍

if语句以及if语句嵌套的这个语法

然后用if语句解决两个实数排序的问题

最后用if语句的嵌套

来判断一个学生的某门课成绩

在A、B、C、D哪一个等级的问题

下面我们来看if语句

那么if语句呢 它有两种控制形式

一种是单分支控制 一种是双分支控制

单分支控制的条件语句

它的格式是if(表达式)语句1

由这个流程图我们可以看到

它的执行的过程是这样的

当表达式为真 执行语句1

当这个表达式为假的时候

它就跳过语句1执行后面的语句

另外一种双分支控制的条件语句

它的格式是if(表达式)语句1

else语句2

按照流程图来看它的执行过程是

如果表达式为真 则执行语句1

如果表达式为假 则执行语句2

那么这两种控制语句里面

双分支控制的条件语句 也就是if-else语句

我们之前举过例子 就是求1元2次方程的根

现在呢

我们来举一个单分支控制if语句的例子

这个例子是这样的

要输入两个实数

并且按由小到大的顺序输出这两个数

我们的解题思路是这样的

首先呢 我们要定义两个实数变量a、b

然后从键盘输入这两个实数的值

接下来 利用if语句来比较a、b值的大小

如果a小于等于b的

那么这个a、b的值就不用交换

如果a的值要大于b

那么a、b的值是一定要交换的

那么这个if语句执行完了

我们就可以确定a、b的值

它肯定是按照由小到大的顺序来排列的

最后输出这个结果 也就是变量a、b的值

那么在这个问题当中

我们怎么样进行变量的这样一个交换呢

这是我们在C语言编程中

经常会遇到的一个问题

就是值的交换

那么值的交换问题是这样来解决的

我们下面可以用生活当中的例子进行类比

来帮助我们理解

因为变量啊 它的值它们都存在

它的各自的存储单元里面

所以这个变量的值要交换的话

我们是不能直接进行赋值运算的

因为一旦做了赋值运算

那么赋值符号左边和右边

这个变量的值就一样了

比如说 我把b的值赋给a

然后再把a的值赋给b

这样做肯定是不行的

因为 当你把b的值赋给a的时候

这个时候a、b的值就相同了

你再把a的值赋给b

其实它们两个的值还是一样的

也就是说根本就没有达到交换的目的

所以我们在交换的时候

这个时候需要一个同类型的变量t来帮助我们

你说就像生活当中

交换一瓶酱油和一瓶醋一样

这个酱油和醋它是有瓶子装的

也就是相当于我们变量的这个存储空间

我们将瓶子里面的内容进行交换

很显然肯定需要一个空瓶子 对吧

交换的时候 我们把酱油倒到空瓶子里面

然后再把醋倒到酱油瓶子里面

最后再把原来最新的那个空瓶子

里面的酱油倒到醋瓶子里面

这样就实现了这个交换

所以同样的道理

在变量a、b交换过程中

我们也要用一个同类型的变量t

来充当这个空瓶的作用

不同的是

酱油和醋交换了瓶子后依然有一个空瓶

而变量a、b通过t的帮助实现了交换之后

变量a、b、t它们的存储单元里

都是存有值的

所以这个时候我们可以用C语言编写程序

那这个程序只有一个主函数

在这个主函数里面

我们要定义a、b、t实型变量

然后用scanf语句输入a、b的值

接下来用if语句来实现a、b值的交换

那么在这个时候

要看这个if后面的条件是否满足

如果满足就交换 如果不满足就不交换

假如a大于b这个条件满足 表达式为真

那么很显然它就要交换的 怎么样交换呢

那么就要执行if后面大括号里的这个复合语句

这个复合语句的里面的这三条语句的执行过程

大家应该可以看得到

就是将a的值先赋给变量t

然后把b的值赋给a

最后把t的值赋给b

那么这样 就把a、b的值做了一个交换

当然 在这个代码当中

如果我们的条件不成立

也就是说如果a小于等于b这个条件不成立

那么这个交换的过程也就不用执行了

因为本来a、b就是按从小到大的顺序排列的

最后输出结果 就是a、b的值

下面我们来运行一下程序

输入a、b的值

分别给它3.3逗号2.2

最后得到这个排列的顺序为2.20逗号3.30

按照程序里输出的这个变量的格式

来得到这个结果

好这是我们讲的if的两个控制语句

在很多种选择结构中

我们可以用if或者是if-else语句来实现

但是 一旦遇到条件比较多的时候

或者这些条件之间有相互的关系

用if语句写代码 它比较繁琐

这个时候 我们可以考虑用if语句的嵌套

现在呢 有一个例子

当然这个例子前面已经提到过

就是判断一个学生的某门课的

成绩为ABCD哪一个等级

如果按照题目的意思

我们可以用if语句来写各个等级的成绩

那么判断这几个等级的条件

依次可以写成下面的这几个样子

其实我们还有一种方式

可以让这几个条件

的代码写起来更加的简洁

也就是我们将要学的这个if语句的嵌套

if语句的嵌套它的形式是这样的

首先我们从外层结构看 有一对if-else语句

if表达式1大括号 语句

那么第一对大括号它的下面呢有一个else

也就是和刚才的这个if配对的

这个是外层的else

这个else下面它有第二对大括号语句

因为是嵌套嘛

所以就是外面的一层if-else

套着内层的if-else

那么这个外层的if-else语句执行情况

大家应该比较容易理解

就是表达式1为真 执行第一对大括号的语句

表达式1为假 执行第二对大括号的语句

下面我们再看内层的if-else语句

也就是说在满足表达式1为真的情况下

同时满足表达式2为真

那么就执行语句1

这个时候我们已经进入到内层的if语句了

那么在表达式1为真的情况下

同时满足表达式2为假 执行语句2

这个时候我们就进入到了内层的else语句

那么同样的道理

在满足表达式1为假的情况下

同时满足表达式3为真 执行语句3

在满足表达式1为假

同时满足表达式3为假

那就执行语句4

我们知道这样一个执行过程之后呢

下面我们把刚才的这个问题

我们用嵌套的if语句来实现

那么这个层级分A、B、C、D四个等级

如何来写这个条件

有外层的if-else

还有里面一层的if-else

所以这个时候我们就要考虑清楚

A、B、C、D这个范围的这个界限

我们怎么样分配

按照这个界限的分配

我们可以将70作为外层的if条件分界点

也就是score大于等于70

好 我们输入了score的值

接下来看到外层的if语句

当score的值大于等于70

这时我们要进内层的if语句判断

如果同时它还要大于等于80也满足

那么成绩为A等

如果这个时候它大于等于70并且小于80

那它就是B等

如果score的值小于70并且还小于60

那么它的成绩为D等

如果score的值小于70并且大于等于60

那么它的成绩为C等

所以大家看到这个题目

其实可以在数轴上面画一下

你可以将这几个条件的这个区域标识出来

那么这样方便我们确定

外层和内层条件的分界点 分界值

最后我们来运行一下这个程序

程序运行的时候我们输入score的值为85

得到这个数学成绩为A等这样一个结果

好今天我们就学习了这个if语句的

两种控制语句和if语句的嵌套

来实现的这些选择结构

好 今天的这一节课就到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

用if语句及if语句嵌套实现选择结构笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。