if(表达式1)
语句1;
else if(表达式2)
语句2 ;
else if(表达式3)
语句3 ;
……
else
语句n ;
图2if-else-if 语句的流程图
例2:有如下程序
main( )
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
该程序的输出结果是()。
A) 0.000000 B) 0.250000 C)0.500000 D) 1.000000
分析:首先x的初值为2.0。判断x<0.0,其为假,则跳过语句“y=0.0;”,接着又判断x<10.0,其为真,则执行“y=1.0/x;”,然后将其输出。因此答案选C。
注意:
(1)if后面圆括号中的表达式,可以是任意合法的C语言表达式,可以是任意类型的数据。
(2)if子句和else子句中如果只有一条语句,则该语句后的分号不能省。
2、if语句的嵌套(概念考得多)
if语句的嵌套:在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下:
if(表达式1)
if(表达式2) 语句1;
else 语句2;
else
if(表达式3) 语句3;
else 语句4;
其执行过程:若表达式1为“真”,则执行其嵌套的if-else语句,否则,执行else后的内嵌if-else语句。其中if-else语句在语法上是一条语句。
特别注意:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。
知识点:条件运算符号的使用(唯一的三目);条件表达式的运算;
重要程度:★★★★(口诀是“真前假后”)
1、条件运算符
条件运算符由两个运算符组成:?:。条件运算符要求有三个运算对象,称三目运算符,它是C语言中唯一的一个三目运算符。
2、条件表达式(“真前假后”口诀)
表达式1 ? 表达式2:表达式3
其执行过程:先求解表达式1,若为非0(真)则求解表达式2,并将表达式2的值作为整个表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个表达式的值。
例1:以下程序的输出结果是()。
??main()
??{
int a=5,b=4,c=6,d;
??printf("%d\n",d=a>b?(a>c?a:c):(b));
}
??A) 5 B)4 C) 6 D)不确定
分析:这是一个条件表达式的嵌套,先判断a>b为“真”,则需要求解表达式a>c?a:c的值。因此又对a>c进行判断,其为“假”,那么c就是整个表达式的值。答案选C。
3、条件运算符的优先级
条件运算符优先于赋值运算,但低于逻辑运算,关系运算符和算术运算符。条件运算符的结合方向为“自右向左”。如有以下表达式:
a>b?a:c>d?c:d 等价于 a>b?a:(c>d?c:d)
如果a=1,b=2,c=3,d=4,则表达式的值等于4。
知识点:switch语句的执行方式;switch语句和 break的搭配;
重要程度:★★★★
1、switch语句
switch语句的一般形式如下:
switch(表达式)
{ case 常量表达式1:语句1;
case 常量表达式2:语句2;
……
case 常量表达式n:语句n;
default: 语句块n+1;
}
其中语句1,语句2等等,可以是一条语句,也可以是若干语句。也可以是嵌套的switch语句。
注意:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-72458-3.html
让美猪死他个上千