C语言的条件语句与其他语言也是一样,“如果…就…”或是“如果…就…否则…”,也就是当条件符合时就执行语句。条件语句又被称为分支语句,它根据给定的条件进行判断,以决定执行某个分支程序段。也有人会称为判断语句,其关键字是由if构成,这在众多的高级语言中都是基本相同的。C语言提供了3种形式的条件语句。
1.基本形式:if
if(表达式)语句
其中的表达式就是判断条件,如果是真就执行后面的语句,否则就不执行。其执行过程如图5-5所示。
图5-3 当型循环结构
图5-4 直到型循环结构
【例5.1】
这是一个简单的用if语句来判断两个数哪个比较大的程序,输入两个数a、b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。所以max中放的总是大的那个数,最后将其值进行输出。
图5-6 第2种if语句执行情况
2.第2种形式:if-else
if(表达式)
语句1;
else
语句2;
其意义为:如果表达式的值为真,则执行语句1,否则执行语句2。其执行过程如图5-6所示。
【例5.2】
图5-5 第1种if语句执行情况
在该程序中,输入两个整数,用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的值为假,
图5-7 第3种if语句执行情况
则再判断表达式2的值,如果表达式2的值为真,则执行语句2,否则继续判断表达式3的值,就这样依次判断表达式的值,当出现某个值为真时,则执行其后面对应的语句,语句执行完后跳到整个if语句之外继续执行程序代码。如果所有的表达式都为假,那么执行语句n,即最后一个else后面的语句,然后再继续执行后面的程序代码。if-else-if语句的执行过程如图5-7所示。
【例5.3】
该程序的功能是判断键盘输入字符的类型。其原理是根据输入字符的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语言中,每一条语句末尾需要加上“;”,在复合语句中,需要注意的是,分号应加在“}”之内,而不能加在“}”外面。
例如:
在这段程序中,如果x>y,变量a自加1,打印输出“x>y”;如果x<y或x=y,变量a自减1,打印输出“x<=y”。
C语句中有许多的括号,例如{},[],()。这对于刚刚学习C语言的人来说,或许会很容易搞混。在VB等一些语言中同一个“()”会有不同的作用,但是在C语言中它们的分工是比较明确的。“{}”是用于将若干条语句组合在一起形成一种功能块,这种由若干条语句组合而成的语句就叫复合语句。复合语句之间用“{}”分隔,而它内部的各条语句还是需要以分号“;”结束。复合语句是允许嵌套的,也是就是在“{}”中的“{}”也是复合语句。复合语句在程序运行时,“{}”中的各行单语句是依次顺序执行的。C语言中可以将复合语句视为一条单语句,也就是说,在语法上等同于一条单语句。对于一个函数而言,函数体就是一个复合语句,复合语句中不单可以用可执行语句组成,还可以用变量定义语句组成。要注意的是,在复合语句中所定义的变量,称为局部变量,所谓局部变量就是指它的有效范围只在复合语句中,而函数也算是复合语句,所以函数内定义的变量有效范围也只在函数内部。“[]”是用于数组的。“()”是用于写条件判断语句的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。