1.if语句的一般格式
if(表达式)
{语句组1;}
else
{语句组2;} ]
(1)if语句中的\"表达式\"必须用\"(“和”)“括起来。
(2)else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。
(3)当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。
2.if语句的执行过程
(1)缺省else子句时 当\"表达式\"的值不等于0(即判定为\"逻辑真”)时,则执行语句组A,否则直接转向执行下一条。
(2)指定else子句时当\"表达式\"的值不等于0(即判定为\"逻辑真\")时,则执行语句组A,然后转向下一条语句;否则,执行语句组B。
如图所示。

\"在这里插入图片描述\"
3.if语句的嵌套与嵌套匹配原则 if语句允许嵌套。所谓if语句的嵌套是指,在\"语句组1\"或(和)\"语句组2\"中,又包含有if语句的情况。 if语句嵌套时,else子句与if的匹配原则:与在它上面、距它最近、且尚未匹配的if配对。
为明确匹配关系,避免匹配错误,强烈建议:将内嵌的if语句,一律用花括号括起来,形成一个复合语句。

[案例] 输入任意三个整数num1、num2、num3,求三个数中的最大值。
/功能:说明if 语句的格式。/
main()
{
int num1,num2,num3,max;
printf(“Please input three numbers:”);
scanf(\"%d,%d,%d\",&num1,&num2,&num3);
if (num1>num2)
max=num1;
else
max=num2;
if (num3>max)
max=num3;
printf(“The three numbers are:%d,%d,%d\\n”,num1,num2,num3);
printf(“max=%d\\n”,max);
}

程序运行情况如下:
Please input three numbers:11,22,18↙
The three numbers are:11,22,18
max=22
本案例中的第1个if语句,可优化为如下不带else子句的形式:
max=num1;
if(num2>max) max=num2;
这种优化形式的基本思想是:首先取一个数预置为max(最大值),然后再用max依次与其余的数逐个比较,如果发现有比max大的,就用它给max重新赋值,比较完所有的数后,max中的数就是最大值。这种方法,对从3个或3个以上的数中找最大值的处理,非常有效。请读者仔细体会。

收藏 打印