当前课程知识点:C语言程序设计 >  第5章 选择结构程序设计 >  5.4 if语句 >  if语句

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

if语句在线视频

下一节:switch语句

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

if语句课程教案、知识点、字幕

同学们大家好

在C语言中

选择结构通常通过if语句和switch语句来实现

本节我们来学习C语言中的if语句

if语句的一般形式如下

if(表达式)语句1

[else 语句2 ]

if语句中的表达式通常情况下是关系表达式

或逻辑表达式

方括号内的部分

即else子句

为可选的

即可以有

也可以没有

语句1和语句2可以是一个简单的语句

也可以是一个复合语句

还可以是另一个if语句

即在一个if语句中又包括另一个或多个内嵌的if语句

成为if语句的嵌套

因此if语句最见的有以下3种形式

第一种形式

没有else子句部分

流程图如图所示

第二种形式

有else子句部分 流程图如图所示

第三种形式

if…else if…形式

流程图如图所示

注意

1

整个if语句可以写在多行上

也可以写在一行上

if (x>0)y=1;else y= -1

但是

为了程序的清晰

提倡写成据齿形式

2

语句1

语句2

语句m

等是if语句中的内嵌语句

它们是if语句中的一部分

每个内嵌语句的末尾都应当有分号

因为分号是语句中的必要成分

不能写成

如果无此分号

则出现语法错误

3

if语句无论写在几行上

都是一个整体

属于同一个语句

不要误认为if部分是一个语句

else部分是另一个语句

不要一看见分号

就以为是if语句结束了

在系统对if语句编译时

若发现内嵌语句结束

出现分号

还要检查其后有无else

如果无else

就认为整个if语句结束

如果有else

则把else子句作为if语句的一部分

注意else子句不能作为语句单独使用

它必须是if语句的一部分

与if配对使用

4

语句1

语句2

语句m

可以是一个简单的语句

也可以是一个包括多个语句的复合语句

注意

复合语句应当用花括号括起来

5

在if语句中要对给定的条件进行检查

判定所给定的条件是否成立

判断的结果是一个逻辑值

例如

判断一个人是否70岁以上

如果有一个人年龄为75岁

对他而言

70岁以上是真的

如果有一个人年龄为15岁

对他而言

70岁以上是假的

又如

判断a> b条件是否满足

当a> b时就称条件a>b为真

如果a<=b

则不满足a>b条件就称此时条件a> b"为假

6

语句1

语句2

语句m

也可以是一个if语句

形成if语句的嵌套

其一般形式如下

If语句中的语句1

或语句2又是一个内嵌的if语句

If语句嵌套时

应当注意if与else的配对关系

else总是与它上面的最近的未配对的if配对

假如写成如下形式

编程序者把else写在与第1个if

外层if同一列上

意图是使else与第1个if对应

但实际上else是与第2个if配对

因为它们相距最近

为了避免二义性的混淆

最好使内嵌if语句也包含else部分

这样if的数目和else的数目相同

从内层到外层一一对应

不致出错

如果if与else的数目不一样

为实现程序设计者的思想

可以加花括号来确定配对关系

例如

这时

{ }限定了内嵌if语句的范围

因此else与第一个if配对

例题

有一函数如下所示

编一程序

输入一个x值

要求输出相应的y值

解题思路

用if语句检查x的值

根据x的值决定赋予y的值

流程图如图所示

由于y的可能值不是两个而是三个

因此不能用一个简单的

无内嵌if的if语句来实现

方法1

先后用3个独立的if语句处理

流程图如图所示

输入x 若x<0

则y=-1 若x=0

则y=0 若x>0

则y=1 输出y 编写程序如下所示

运行结果如下所示

方法2

用一个嵌套的if语句处理

流程图如图所示

输入x 若x<0

则y=-1 否则 若x=0

则y=0 否则

即x>0

则y=1 输出y 编写程序如下

运行结果如下所示

同学们

请想一想

本题还有没有其它的解决办法呢

请上机进行验证

本节的内容就讲到这里

谢谢大家

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

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

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

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

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

if语句笔记与讨论

也许你还感兴趣的课程:

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