if语句
if语句的三种形式
- 单分支结构 if语句
- 双分支结构 if…else语句
- 多分支结构 if…else if…else结构
if的单分支结构
形式: if(这里填条件)
例: if(a>1) #如果a大于1
if的双分支结构
例.计算两个数的商
double x,y;
double result;
printf("请输入被除数:");
scanf("%lf",&x);
printf("请输入除数:");
scanf("%lf",&y);
if(y!=0)
{
result=x/y;
printf("两个数的商:%.2f\n",result);
}
else
{
printf("除数为零!\n");
}
if的多分枝结构
语法格式:
if(表达式) {语句块1}
else if(表达式2){语句块2}
else if(表达式3){语句块3}
……
else if(表达式n){语句块n}
else{语句块m}
if语句的嵌套
模板
-
1
if(表达式1)
if(表达式2) 语句1
[else 语句2] -
2
if(表达式1) 语句1
else
if(表达式2) 语句2
[else 语句3] -
3
if(表达式1)
if(表达式2) 语句1
[else 语句2]
else 语句3 -
4
if(表达式1)
if(表达式2) 语句1
[else 语句2]
else
if(表达式3) 语句3
[else 语句4]
临近原则:else与if成对出现,并且总是与最近的未配对的if配对
例:
y=-1(x<0)
y=0(x=0)
y=1(x>0)
1.嵌套在if子句
if(x!=0)
if(x<0) y=-1
else y=1
else y=0;
或
if(x>=0)
if(x>0) y=1
else y=0
else y=1;
2.嵌套在else子句
if(x<0)
y=-1;
else
if(x==0) y=0;
else y=1;
或
if(x>0)
y=1;
else
if(x==0) y=0;
else y=-1;
switch语句
- switch语句多用于问题分支较多时,是多分枝条件判断语句
- 表达式的值为整数、字符、枚举类型。
- 常量表达式的值必须互不相同,否则会出现分支矛盾的现象。
- case后面的常量表达式只是起标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。一般情况下需用break语句跳出switch语句。
- 语句块可以是一条语句,或者复合句,可以不用花括号{}。
- 各个case和default出现的先后次序,并不影响执行结束,习惯上将default子句放在switch的末尾。
- 多个case标号可共用一组执行句。
switch语句的一般形式
switch(表达式)
{
case 常量表达式1:语句块1
case 常量表达式2:语句块2
……
case 常量表达式n:语句块n
}
执行流程
- 计算表达式的值
- 与各个case后的常量表达式的值比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句(可以break语句跳出switch语句)。
- 如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句。