}
本例中!x 和!y 分别为 0,!x*!y 也为 0,故其输出值为 0。由于 x 为非 0,故!!!x 的逻
辑值为 0。对 x|| i && j-3 式,先计算 j-3 的值为非 0,再求 i && j-3 的逻辑值为 1,故
x||i&&j-3 的逻辑值为 1。对 i
1,0 相与,最后为 0,对 i==5&&c&&(j=8)式,由于 i==5 为假,即值为 0,该表达式由两个
与运算组成,所以整个表达式的值为 0。对于式 x+ y||i+j+k 由于 x+y 的值为非 0,故整个
或表达式的值为 1。
5.3 if 语句
谭浩强 C 语言程序设计 2001 年 5 月 1 日
用 if 语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序
段。C语言的 if 语句有三种基本形式。
5.3.1 if 语句的三种形式
1. 第一种形式为基本形式:if
if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可
表示为下图。
【例 5.3】
main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max
printf("max=%d",max);
}
本例程序中,输入两个数 a,b。把 a 先赋予变量 max,再用 if 语句判别 max 和 b 的大小,
如 max 小于 b,则把 b 赋予 max。因此 max 中总是大数,最后输出 max 的值。
2. 第二种形式为: if-else
if(表达式)
语句 1;
else
语句 2;
其语义是:如果表达式的值为真,则执行语句 1,否则执行语句 2 。
其执行过程可表示为下图。
【例 5.4】
main(){
int a, b;
谭浩强 C 语言程序设计 2001 年 5 月 1 日
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}
输入两个整数,输出其中的大数。
改用 if-else 语句判别 a,b 的大小,若 a 大,则输出 a,否则输出 b。
3. 第三种形式为 if-else-if 形式
前二种形式