在此篇文章中,我将为你介绍分支语句。那么,首先有一个问题。
一、什么叫做语句?
C语言中,语句可以分为五大类:
1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句
本篇文章中的以下内容,将介绍 控制语句 —— 用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构 )。
二、 分支语句(选择结构)
1. if语句
if语句中有两种结构:
单分支
//单分支if语句 if(表达式1) 语句1;
多分支
//多分支 if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; ...
if语句如何执行呢?
若 表达式 为真,则执行对应语句;若 为假,则不执行。
( 0 为假;非0 为真 )
接下来,为大家展示一个单分支if语句的运行结果。
若想要执行多条语句,则需要用到代码块功能。
if(表达式1) { 语句1; 语句2; ... }
其中 { } 为一个代码块。
if语句中 比较常见的几个重点问题:
1. 悬空 else
if (a > 5) if (a > 7) printf("%d", a); else printf("%d", 5 - a);
else 的匹配: else 仅与离它最近的 if 匹配
2. 代码风格
2.1
如上一段代码,由于其糟糕的代码风格,我们很容易将程序的运行结果判断错误
if (a > 5) { if (a > 7) printf("%d", a); else printf("%d", 5 - a); }
倘若将上一段代码改写成这样,同学们就不大会判断错误了
2.2
//1 if (a = 5) { } //2 if (a == 5) { } //3 if (5 == a) { }
如果我们要写一个if语句,判断a是否与5相等时,采用第三种写法,就能够更少出错了 。
2. switch 语句
switch(a) { case 1: 语句1; case 2: 语句1; case 3: 语句3; ... }
当我们输入的 a 为 1时,switch语句 将从 case 1 进入;a 为 2时,switch语句 将从 case2 进入;... , 以此类推。
如果不加操作,当我们将 case 1 中的语句运行完时, switch语句不会自动停止,而是沿着 case 2 、 case 3 一直运行下去。
要避免这种情况,我们需要在语句结束的地方,加入 break ,这样程序就能自动停止。
在这里,我将给出一个程序运行结果,以展示 switch语句的实际效果。
如果我输入的值是与标签值都不匹配怎么办?
这里,我要再为你们介绍一个关键字 default
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行
建议:
在每个 switch 语句中都放一条default子句,甚至可以在后边再加一个 break 。