文档介绍:第五讲条件语句
语句和复合语句
if语句
switch语句
应用举例
第四章条件语句
结构化程序的三种基本结构:顺序结构、选择分支结构和循环结构。
顺序结构:是指每个程序都是按照语句的书写顺序依次执行的。
选择分支结构:是指通过对特定条件的判断,来选择一个分支执行。
循环结构:循环是指在给定条件下,重复执行某段程序,直到不满足条件为止。
语句和复合语句
表达式语句:一个表达式的后面跟随一个分号构成的语句。
如:x=x+a;
说明:分号“;”是语句的终结符,而不是语句的分隔符即分号是语句的最末组成部分。
复合语句:由左右花括号括起来的语句;
形式:{说明部分;语句部分}
一个复合语句在语法上等同于一个语句,在程序中,凡是单个语句能够出现的地方,都可以出现复合语句。一个复合语句又可以出现在其他复合语句内部。
在复合语句的后面必须有一个分号,做为该语句的终结符。
if语句
If语句是条件选择语句,它是通过对给定条件的判断,来决定所要执行的操作。
if语句的三种形式
If语句的第一种形式
格式:if(表达式)〈语句〉
功能:首先计算表达式的值,若表达式的值
为“真”(为非0),则执行语句,若表达
式的值为“假”(为0),不执行语句。
例如:
If(x>y) printf(“%d”,x);
表达式
语句
假(0)
真(非0)
2. If语句的第二种形式
格式:if(表达式) 〈语句1〉
else 〈语句2〉
功能:首先计算表达式的值,
若表达式的值为“真”(为非0)。
则执行语句1,若表达式的值为
“假”(为0),则执行语句2。
例如:
if (x>y) printf(“%d”,x);
else printf(“%d”,y);
语句1
表达式
语句2
真
假
3. If语句的第三种形式
格式:
if(表达式1) 〈语句1〉
else if(表达式2) 〈语句2〉
else if(表达式3) 〈语句3〉
┆
else if(表达式n) 〈语句n〉
else 〈语句n+1〉
功能:首先计算表达式的值,若第n个表达式的值为“真”(为非0),则执行语句n,若所有的表达式的值都为“假”(为0),则执行语句n+1。其流程图如下:
表达式1
表达式2
表达式3
表达式4
真
真
真
真
假
假
假
假
语句1
语句2
语句3
语句4
语句5
例如:
if(score>89) grade=‘5’;
else if(score>74) grade=‘4’;
else if(score>59) grade=‘3’;
else grade=‘2’;
说明:
(1)if语句中的表达式可以是C语言的合法表达式。
(2)第二种、第三种格式的if语句中,在每个else前面有一个分号,整个语句结束处也有一个分号。这是由于分号是C语句中不可缺少的部分,这个分号是if语句中的内嵌语句所要求的。
(3)在if和else后面可以只含有一个内嵌的操作语句,也可以含有多个操作语句,此时应用花括号“{ }“将几个语句括起来,构成一个复合语句。
将两个数中较大者赋给 s。
main()
{
int a,b,s;
a=10;b=20;
if(a>b) s=a;
else s=b;
printf(“s=%d\n”,s);
}
执行结果:
s=20
比较两个数,按由大到小输出。
main( )
{
int a,b,x,y;
a = 10;
b = 20;
if (a>b) {x=a;y=b;}
else {x=b;y=a;}
printf(“x=%d,y=%d\n”,x,y);
}
执行结果:
x=20,y=10
if语句的嵌套
在if 语句中又包含一个或多个if语句,称为if语句的嵌套。一般形式如下:
if( )
if( ) 〈语句1〉
else 〈语句2〉
else
if( ) 〈语句3〉
else 〈语句4〉
if( )
if( ) 〈语句1〉
else
if( ) 〈语句2〉
else 〈语句3〉
说明:
(1)if与else的配对关系,从最内层开始,else总是与离它最近的未曾配对的if配对。
(2)if与else的个数最好相同,从内层到外层一一对应,以避免出错。
(3)如果if与else的个数不相同,可以用花括号来确定配对关系。例如:
If ( )
{if( )〈语句1〉}
else
〈语句2〉
这时{ }限定了内嵌if 语句的范围,因此else与第一个if配对。
内嵌if
内嵌if
内嵌if
有一函数
-1 (x<0)
y= 0 (x=0)
1