首页 理论教育 AVR单片机快速入门:if语句的3种形式

AVR单片机快速入门:if语句的3种形式

时间:2023-11-20 理论教育 版权反馈
【摘要】:C语言提供了3种形式的条件语句。图5-6 第2种if语句执行情况2.第2种形式:if-elseif(表达式)语句1;else语句2;其意义为:如果表达式的值为真,则执行语句1,否则执行语句2。if-else-if语句的执行过程如图5-7所示。

AVR单片机快速入门:if语句的3种形式

C语言的条件语句与其他语言也是一样,“如果…就…”或是“如果…就…否则…”,也就是当条件符合时就执行语句。条件语句又被称为分支语句,它根据给定的条件进行判断,以决定执行某个分支程序段。也有人会称为判断语句,其关键字是由if构成,这在众多的高级语言中都是基本相同的。C语言提供了3种形式的条件语句。

1.基本形式:if

if(表达式)语句

其中的表达式就是判断条件,如果是真就执行后面的语句,否则就不执行。其执行过程如图5-5所示。

978-7-111-36320-0-Chapter05-3.jpg

图5-3 当型循环结构

978-7-111-36320-0-Chapter05-4.jpg

图5-4 直到型循环结构

【例5.1】

978-7-111-36320-0-Chapter05-5.jpg

这是一个简单的用if语句来判断两个数哪个比较大的程序,输入两个数a、b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。所以max中放的总是大的那个数,最后将其值进行输出。

978-7-111-36320-0-Chapter05-6.jpg

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

2.第2种形式:if-else

if(表达式)

语句1;

else

语句2;

其意义为:如果表达式的值为真,则执行语句1,否则执行语句2。其执行过程如图5-6所示。

【例5.2】

978-7-111-36320-0-Chapter05-7.jpg

978-7-111-36320-0-Chapter05-8.jpg

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

978-7-111-36320-0-Chapter05-9.jpg

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

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

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

if(表达式1)

语句1;

else if(表达式2)(www.xing528.com)

语句2;

else if(表达式3)

语句3;

else if(表达式m)

语句m;

else

语句n;

其意义是:先判断表达式1的值,如果为真,则执行语句1,如果表达式1的值为假,

978-7-111-36320-0-Chapter05-10.jpg

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

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

【例5.3】

978-7-111-36320-0-Chapter05-11.jpg

该程序的功能是判断键盘输入字符的类型。其原理是根据输入字符的ASCII码值来判别字符类型。这是一个多分支选择问题的典型应用,用if-else-if语句来实现,判断输入的字符ASCII码所在的范围,分别给出不同的输出提示信息。例如输入7,则程序会输出“这是一个数字”。

4.使用if语句要注意的问题

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

例如:

if(a>100)语句;

if(a)语句;

if(1)语句;

以上几种写法都是合法的,只要括号里的表达式为非0,就会执行后面的语句,否则就不执行。

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

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

例如:

978-7-111-36320-0-Chapter05-12.jpg

在这段程序中,如果x>y,变量a自加1,打印输出“x>y”;如果x<y或x=y,变量a自减1,打印输出“x<=y”。

C语句中有许多的括号,例如{},[],()。这对于刚刚学习C语言的人来说,或许会很容易搞混。在VB等一些语言中同一个“()”会有不同的作用,但是在C语言中它们的分工是比较明确的。“{}”是用于将若干条语句组合在一起形成一种功能块,这种由若干条语句组合而成的语句就叫复合语句。复合语句之间用“{}”分隔,而它内部的各条语句还是需要以分号“;”结束。复合语句是允许嵌套的,也是就是在“{}”中的“{}”也是复合语句。复合语句在程序运行时,“{}”中的各行单语句是依次顺序执行的。C语言中可以将复合语句视为一条单语句,也就是说,在语法上等同于一条单语句。对于一个函数而言,函数体就是一个复合语句,复合语句中不单可以用可执行语句组成,还可以用变量定义语句组成。要注意的是,在复合语句中所定义的变量,称为局部变量,所谓局部变量就是指它的有效范围只在复合语句中,而函数也算是复合语句,所以函数内定义的变量有效范围也只在函数内部。“[]”是用于数组的。“()”是用于写条件判断语句的。

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

我要反馈