内容简介
前言
if…else 条件表达式
多个条件
一些容易犯的错误
布尔值,条件语句的核心
switch 语句
三元表达式:精简的条件语句
总结
第一部分第九课预告
1. 前言
上一课是 C语言探索之旅 | 第一部分第七课:运算那点事 。
在之前的课程中,我们已经知道世界上有很多编程语言,有些相互之间很类似,其中不少都受了 C语言的启发。
事实上,C语言是很早之前被发明的(1972 年左右),所以它也成了很多近代编程语言的参考模板。
我们说编程语言相似,是说他们都汲取了它们的前辈的编程基础。
说到编程基础,那就有很多了。其中,我们已经学过的有:变量,运算。这一课我们来学习条件表达式。
2. if…else 条件表达式
简单来说,条件表达式使我们可以测试变量。
打个比方,我们可以这样说:“假如变量的值等于 7,就执行这样那样的操作。”
如果 C语言里面不能做“等于”的判断,那该多可惜啊。我们还要做“小于”,“大于”,“大于等于”,“小于等于”,“不等于”的判断。
不必担心,C语言都为你预备好了。
为了学习 if…else 语句,我们准备按照下面的顺序来进行:
预先需要了解的几个符号
if 语句
else 语句
else…if 语句
多个条件
一些需要避免的错误
在我们学习写 if…else 表达式前,须要先了解几个基本符号,这些符号对于实现条件判断是必不可少的。
几个需要了解的符号
下表列出了 C语言中需要用心记住的几个符号:
符号 | 含义 |
---|---|
== | 等于 |
> | 大于 |
< | 小于 |
<= | 小于等于 |
!= | 不等于 |
判断“等于”需要两个等号(
==
)!
一个很常见的错误是只写一个等号,在 C语言中一个等号和两个等号具有不同的含义。一个等号表示赋值,两个等号才是判断是否相等。
单一的 if 语句
if 表示“如果,假如”。
逻辑是这样的:
如果 变量的值是这样则 执行如下操作
所以单一的 if 语句是这样写的:
先写一个 if 。
接着写一个括号 (),在这个括号中写条件。
接着写一个大括号 {},在大括号中写在 () 中条件为真时所要执行的操作。
格式如下:
if (/* 条件 */)
{
// 如果条件为真,所要执行的操作
}
我们把上面注释的地方换成实际的代码,写一个程序测试一下:
#include
int main(int argc, char *argv[]){
int age = 20;
if (age >= 18)
{
printf("你成年了!\n");
}
return 0;
}
解释:
int age = 20;
首先定义一个 int 型的变量,名字是 age(表示“年龄”),值为 20。
if 语句的括号 () 中的条件是 age >=18
,意思是“假如 age 的值大于或等于 18”。
if 语句的大括号 {} 中的语句是
printf("你成年了!\n");
就是说当 age 的值大于或等于 18 时,显示“你成年了!”这句话。
因为程序中变量 age 的值是 20, 大于 18,所以条件为真,所以程序运行起来后显示:
你成年了!
如果我们把变量 age 的值改为 12,再次运行程序,什么也没显示,因为 12 小于 18,所以 age >= 18
这个条件不为真,不执行大括号里的 printf 语句。
唠叨一下代码的格式
假如我们将上面的代码写成这样:
if(age>=18){
printf("你成年了!");}
程序也是可以正确运行的,但是非常不推荐这样的代码格式!
如果我们的程序没有空行,没有空格,不缩进,都写在一行里,那将会使代码非常难以阅读。
所以从一开始学习编程就请养成良好的编码习惯,不然以后写一些大型程序,别人根本不知道怎么阅读你的代码,你也会迷失在自己的代码里。
推荐看林锐老师的《高质量C++/C编程指南》一书,里面提到了编码规范。
当然,每个程序员的代码风格都不一样,但是我们推荐大家遵从本系列课程中的代码格式或者一些著名公司的代码格式(例如 Google,阿里,等等),因为是比较通用的编码格式。
else 语句
现在你知道怎么写单一的 if 语句了。那当条件为假时,我们想要电脑也执行对应的操作怎么办呢?对了,此时就轮到 else 关键字出场了。
else 表示“否则”。
但是 else 语句一定要跟 if 语句配合才能使用,独立的