写给新手 选择结构程序设计总结
选择结构程序设计总结 2010-11-2一:C语言有两种选择结构:
(1):if语句,用来实现两个分支的选择结构;
(2):switch语句,用来实现多分支的选择结构;
二:if语句:
if语句的一般形式如下:
if(表达式)
语句1;
或者是:
if(表达式){
语句1;
}
说明:
【1】:if语句中的表达式可以是关系表达式,逻辑表达式,甚至是数值表达式,返回的是一个逻辑值,即真或假!
三:所有形式如下:
(1):单判断语句
if(表达式1)
语句1;
或者是:
if(表达式1){
语句1;
}
(2):双分支语句
if(表达式1)
语句1;
else
语句2;
或者是:
if(表达式1){
语句1;
}else{
语句2;
}
(3):多分支语句
if(表达式1)
语句1;
else if(表达式2)
语句2;
......
else if(表达式n)
语句n;
else
语句n+1;
说明:
【1】:整个语句可以写在多行上,也可以写在一行上;
例子:
if(x>0) y=1;else y=0;
【2】:if语句写在多行上,都是一个整体,属于一个语句。不要误认为if部分是一个语句,else部分是另一个语句。在系统中对if语句编译的时候,还要检查是
否有else语句,如果有else语句,会把它当做if语句的部分;如果没有else语句,则认为if语句已经结束!还要注意else语句不能作为单独语句来结束,它必须和
if语句配对使用,而且是和最近的if语句配对,采用就近原则!
【3】:if语句不加大括号,只对第一句代码有约束作用,后面的代码不在约束,会按照顺序往下执行;如果加上大括号会对括号里面的所有代码都有约束作用。
四:选择结构语句的嵌套
if语句的嵌套:在if语句中又包含一个或多个if语句称为if语句的嵌套。
形式如下:
(1):在if语句中再嵌套if语句
if(表达式1){
if(表达式2){
语句1;
}
}
(2):在if语句中再嵌套双分支语句
if(表达式1){
if(表达式2){
语句1;
}else{
语句2;
}
}
(3):在if语句中嵌套多分支语句
if(表达式1){
if(表达式2){
语句1;
}else if(表达式3){
语句2;
}else if(表达式4){
语句3;
}else{
语句4;
}
}
五:用switch语句实现多分支语句
switch语句是多分支选择语句
switch语句作用:根据表达式的值来使流程跳转到不同的语句。
六:一般的形式如下:
(1):无break语句形式
switch(表达式){
case 常量1:
语句1;
case 常量2:
语句2;
case 常量3:
语句3;
default:
语句4;
}
(2):有break语句形式
switch(表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
case 常量3:
语句3;
break;
default:
语句4;
break;
}
说明:
【1】:switch语句后面的“表达式”,其值的类型应为整数型(包括字符型)【字符型也属于整数形式,按照ASCII码来存储到计算机当中】
【2】:switch语句下面的大括号是一个复合语句,一定要打上,不打则会报错!里面是case关键字和default组合的若干语句。case后面的必须跟一个常量,
或是常量表达式。被当做标号作用,用来标识一个位置。
【3】:没有break语句,是按照顺序依次往下执行;有break语句,符合哪一种情况就执行哪一种情况下的语句,之后马上退出整个switch语句。
【4】:switch语句的运行原理:在执行switch语句时,先计算switch后面的表达式的值,然后将它与各个case标号比较,如果与某一个case标号中的常量相同
,流程就转到此case标号的后面的语句。如果没有switch表达式相匹配的case常量。再检查有没有default语句,若有就执行default标号后面的语句,若没有则退
出整个switch语句。
【5】:各个case标号出现的次序不影响结果,可以先出现default语句,其他case语句可以打乱。
【6】:每一个case常量必须互不相同,否则会出现矛盾现象,重复定义系统报错!
【7】:在case语句下不需要加大括号,会自动执行case标号语句后面的所有语句!
【8】:多个case标号可以共用一组执行语句。如下:
case 'A':
case 'B':
case 'C':
printf("及格了!\n");break;
七:多分支选择语句嵌套:
(1):可以在switch中嵌套switch语句
switch(表达式1){
case 常量1:
switch(表达式2){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
}
break;
case 常量2:
语句3;
break;
}
八:if语句与switch语句综合嵌套使用
(1):可在if语句嵌套switch语句
if(表达式1){
switch(表达式2){
case 常量1:
break;
case 常量2:
break;
}
}
(2):可以在switch语句中嵌套if语句
switch(表达式1){
case 常量1:
if(表达式2){
语句1;
}else{
语句2;
}
break;
}