首页 理论教育 C51单片机if语句3种形式

C51单片机if语句3种形式

时间:2023-11-17 理论教育 版权反馈
【摘要】:图4-3 第1种if语句执行情况例4-1中,输入两个数a,b。通过printf语句输出变量c的值。if-else-if语句的执行过程如图4-5所示。

C51单片机if语句3种形式

1.第1种形式为基本形式:if

if(表达式)语句

其语义是:如果表达式的值为真,则执行其后的语句,否则就不执行该语句。其过程如

图4-3所示。

【例4-1】

978-7-111-30335-0-Chapter04-3.jpg

978-7-111-30335-0-Chapter04-4.jpg

图4-3 第1种if语句执行情况

例4-1中,输入两个数a,b。把a先赋予变量min,再用if语句判别min和b的大小,如min大于b,则把b赋予min。所以min中放的总是小的数,最后将其值进行输出。

2.第2种形式为:if-else

if(表达式)

语句1;

else

语句2;

其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。

其执行过程如图4-4所示。

978-7-111-30335-0-Chapter04-5.jpg

图4-4 第2种if语句执行情况

【例4-2】

978-7-111-30335-0-Chapter04-6.jpg

}

例4-2中,输入两个整数,用if-else语句判别,当a等于b时,c=1;否则,c=2。通过printf语句输出变量c的值。

3.第3种形式为:if-else-if

前面两种形式的if语句一般都用于两个分支的情况。当有多个分支选择时,可采用第3种形式,即if-else-if语句,其一般形式为

if(表达式1)

语句1;

elseif(表达式2)

语句2;

else if(表达式3)

语句3;(www.xing528.com)

else if(表达式m

语句m

else

语句n

其语义是:先判断表达式1的值,如果为真,则执行语句1;如果表达式1的值为假,则再判断表达式2的值,如果表达式2的值为真,则执行语句2;否则继续判断表达式3的值,就这样依次判断表达式的值,当出现某个值为真时,则执行其后面对应的语句,语句执行完后跳到整个if语句之外继续执行程序代码。如果所有的表达式都为假,那么执行语句n,即最后一个else后面的语句,然后再继续执行后面的程序代码。if-else-if语句的执行过程如图4-5所示。

978-7-111-30335-0-Chapter04-7.jpg

图4-5 第3种if语句执行情况

【例4-3】

978-7-111-30335-0-Chapter04-8.jpg

例4-3中,程序的功能是判断键盘输入字符的类别。其原理是根据输入字符的ASCII码值来进行判别字符类型。我们查一下ASCII码表便可知ASCII码值小于32的为控制字符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其他字符。这是一个多分支选择问题的典型应用,用if-else-if语句来实现,判断输入的字符ASCII码所在的范围,分别给出不同的输出提示信息。例如输入为“x”,输出显示“这是一个小写字母”。

4.在使用if语句中应注意的问题

1)在3种形式的if语句中,在if关键字之后均为表达式,它除了是常见的关系表达式或逻辑表达式外,也允许是其他类型的数据,如整型、实型、字符等。

例如:

if(x=8)语句;

if(x)语句;

如以上式子中(x=8)和(x)都是允许的,只要表达式的值为非0值,即为“真”,那就执行if后面的语句。

如将上面的式子改为:

if(x=y)

printf(“%d”,x);

else

printf(“x的值为0”);

该程序段的意思是,把y的值赋给x,如果x不为0,即表达式的值不为0,那么就执行printf(“%d”,x);语句,打印输出x的值,否则输出“x的值为0”的字符串。

2)与BASIC语言不同的是,在if语句中,条件判断语句必须用括号将表达式括起来,而且在语句后面必须加分号。

3)在所有的if语句形式中,if后面跟着的语句应为单条语句。如果想在满足条件分支时执行多条语句,那么,我们必须把这若干条语句用“{}”括起来,我们称此为复合语句。C语言中,每一条语句末尾需要加上“;”,在复合语句中,需要注意的是,分号应加在“}”之内,而不能加在“}”外面。

例如:

978-7-111-30335-0-Chapter04-9.jpg

该程序段意义:如果x>y,变量a自加1,打印输出“x>y”;如果x<0或x=0,变量a自减1,打印输出“x<=y”。

在C语言中有不少的括号,如{},[],()等,确实会让一些初入门的朋友不解。在VB等一些语言中同一个()号会有不同的作用,它可以用于组合若干条语句形成功能块,可以用做数组的下标等。而在C语言中括号的分工较为明显,{}号是用于将若干条语句组合在一起形成一种功能块,这种由若干条语句组合而成的语句就叫复合语句。复合语句之间用{}分隔,而它内部的各条语句还是需要以分号“;”结束。复合语句是允许嵌套的,也是就是在{}中的{}也是复合语句。复合语句在程序运行时,{}中的各行单语句是依顺序执行的。C语言中可以将复合语句视为一条单语句,也就是说在语法上等同于一条单语句。对于一个函数而言,函数体就是一个复合语句,因此复合语句中不单可以用可执行语句组成,还可以用变量定义语句组成。要注意的是在复合语句中所定义的变量,称为局部变量,所谓局部变量就是指它的有效范围只在复合语句中,而函数也算是复合语句,所以函数内定义的变量有效范围也只在函数内部。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈