从单片机基础到程序框架(全集 2019pdf版).pdf - 第189页

{ 语句 1; } else i f(条件 2) //else if 只能 出现中间或最 后,可以出 现多次 { 语句 2; } ... else i f(条件 N) //else if 只能 出现中间或最 后,可以出 现多次 { 语句 N; } else //else 只能出现最 后,并且也只 能出现一 次。 { 语句 N+1; } 语句 N+ 2; 这类语句的 书写特点是: 第一行是 i f 开始,最后一 行以 el se 结束 ,…

100%1 / 836
第四十五节: 组合判断 if...else if...else。
【45.1 三类组合判断语句的概述。
if 的英文含义“如果”else “否则”else if “否则如果 C 语言里,if,else if ,else 所
表达的含义,跟英文也是一样的。
if,else if,else 可以组成三种组合判断语句,第一种是二选一”第二种是多选一”第三种是“多
选一或者什么都不选”
这类组合判断语句可以这样解读:在众多条件判断中,先从第一个 if 条件开始判断,如果第一个 if
件是真,那么不管后面的条件是否为真,都不再判断,直接执行第一个 if 条件后面大括号的语句,组合语
句中其它剩余的条件不再判断直接跳过,否则,就挨个条件往下判断,只要其中一个条件满足,就不再判断
剩余的条件,也就是我们日常所说的多选一甚至在某些组合语句如果所有条件都不满足那么什么也不选。
总之,在如此众多的条件中,最多只能执行一个条件后面大括号的语句。组合语句还有一个规律:if 语句只
出现断,现一else 只能也只;而 else if
语句总是出现在中间,绝对不能出现在第一个条件判断,如果没有 else,也可以出现在最后的条件判断。
说一句,在上述所提到的“只能出现一次”的概念仅仅局限于在一个组合判断语句的范围内,而组合判断
句在整个程序的出现次数是不受限制的
【45.2 二选一的组合判断。
先讲第一种的“二选一”的书写格式,如下:
书写格式如下:
if(条件 1) //if 只能出现第一个条件,并且只能出现一
{
语句 1;
}
else //else 只能出现最后,并且也只能出现一次。
{
语句 2;
}
语句 3;
这类语句的书写特点是:第一个是 if 判断语句,最后一个是 else 语句,中间没有 else if 判断语句。
这类语句的执行顺序是:先判断第一个的 if 里面的(条件 1),如果(条 1)满足而为真,就执行该
(条件 1)后面紧跟的大括号里面“语句 1”执行完该大括号内的所有语句之后就直接跳出整个组合判
断的语句,不再判断也不再执行剩下来 else 部分的代码,直接跳到“语 3”处,从“语句 3”处(
“语句 3”)继续往下执行。但是,如果第一个的 if 里面(条件 1)不满足而为假,那么就直接执行 else
面大也就else 是在 if 条件行的叫“ if else
之间二选一
【45.3 多选一的组合判断。
接着讲第二种书写格式的“多选一”这种书写格式,跟第一种对比,是在 if else 的中间多插入 N
else if 的判断语句。书写格式如下:
if(条件 1) //if 只能出现第一个条件,并且只能出现一
{
语句 1;
}
else if(条件 2) //else if 只能出现中间或最后,可以出现多次
{
语句 2;
}
...
else if(条件 N) //else if 只能出现中间或最后,可以出现多次
{
语句 N;
}
else //else 只能出现最后,并且也只能出现一次。
{
语句 N+1;
}
语句 N+2;
这类语句的书写特点是:第一行是 if 开始,最后一行以 else 结束,中间是 N else if 判断语句。
这类语句的执行顺序是跟第一种“二选一”对比,判断顺序和规律大致也是一样的,也是从第一个 if
开始,往下逐个判断,然后到中间 else if,只要发现一个条件满足,就执行该条件后面的大括号内的
码,之后就马上结束整个组合判断语句,不再判断剩下的组合判断语句。但是,如果万一前面第一 if
中间所有的 else if 的条件都不满足而为假,就直接执行最后一 else 大括号内的语句所以多选一”
在“第一个 if、中间的 else if、最后一个 else”之间多选一
【45.4 多选一或者什么都不选的组合判断。
最后讲第三种书写格式“多选一或者什么都不选这种书写格式,跟第二种对比,只有第一个 if
其它的 else if 语句,没有最后那个 else 语句。书写格式如下:
if(条件 1) //if 只能出现第一个条件,并且只能出现一
{
语句 1;
}
else if(条件 2) //else if 只能出现中间或最后,可以出现多次
{
语句 2;
}
...
else if(条件 N) //else if 只能出现中间或最后,可以出现多次
{
语句 N;
}
语句 N+1;
这类语句的书写特点是:第一行是 if 开始,中间是 N else if 判断语句,没有最后一个 else 语句。
这类语句的执行顺序是跟第二种“多选一”对比,判断顺序和规律大致也是一样的,也是从第一个 if
开始,往下逐个判断,然后到中间 else if,只要发现一个条件满足,就执行该条件后面的大括号内的
码,之后就马上结束整个组合判断语句,不再判断剩余的组合判断语句。但是,如果万一前面第一 if
中间所有的 else if 的条件都不满足而为假,因为此时没有 else 语句,就意味着整个组合判断语句都没有
条件满足,因此就没有相关满足的代码被执行到。所以把这种情况称为“多选一或者什么都不选
【45.5 例程练习和分析。
现在编写一个实验程序
程序代码如下:
/*---C 语言学习区域的开始。-----------------------------------------------*/
//x 这个变量作为条件判断的变量
unsigned char x=5;
//a,b,c 3 个变量作为输出判断结果,0 代表什么语句都没执行,1 代表执行了语句 1,
//2 代表执行语句 2,3 代表执行语句 3。
unsigned char a=0;
unsigned char b=0;
unsigned char c=0;
void main() //主函数
{
//第一种“二选一”
if(x>6)
{
a=1; //1 代表执行了“语句 1”
}
else
{
a=2; //2 代表执行了“语句 2”
}
//第二种“多选一”
if(x>6)
{
b=1; //1 代表执行了“语句 1”
}
else if(7==x)
{
b=2; //2 代表执行了“语句 2”
}
else