1.第1种形式为基本形式:if
if(表达式)语句
其语义是:如果表达式的值为真,则执行其后的语句,否则就不执行该语句。其过程如
图4-3所示。
【例4-1】
图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所示。
图4-4 第2种if语句执行情况
【例4-2】
}
例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所示。
图4-5 第3种if语句执行情况
【例4-3】
例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语言中,每一条语句末尾需要加上“;”,在复合语句中,需要注意的是,分号应加在“}”之内,而不能加在“}”外面。
例如:
该程序段意义:如果x>y,变量a自加1,打印输出“x>y”;如果x<0或x=0,变量a自减1,打印输出“x<=y”。
在C语言中有不少的括号,如{},[],()等,确实会让一些初入门的朋友不解。在VB等一些语言中同一个()号会有不同的作用,它可以用于组合若干条语句形成功能块,可以用做数组的下标等。而在C语言中括号的分工较为明显,{}号是用于将若干条语句组合在一起形成一种功能块,这种由若干条语句组合而成的语句就叫复合语句。复合语句之间用{}分隔,而它内部的各条语句还是需要以分号“;”结束。复合语句是允许嵌套的,也是就是在{}中的{}也是复合语句。复合语句在程序运行时,{}中的各行单语句是依顺序执行的。C语言中可以将复合语句视为一条单语句,也就是说在语法上等同于一条单语句。对于一个函数而言,函数体就是一个复合语句,因此复合语句中不单可以用可执行语句组成,还可以用变量定义语句组成。要注意的是在复合语句中所定义的变量,称为局部变量,所谓局部变量就是指它的有效范围只在复合语句中,而函数也算是复合语句,所以函数内定义的变量有效范围也只在函数内部。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。