选择
1.定义
有些代码执行,也可能代码不执行,有选择地执行某些代码
2.分类
if
switch
选择_if
1.if最简单的用法
if (表达式)
语句;
功能: 如果表达式为真,则执行语句;否则不执行
2.if的范围(重点)
①if默认的只能控制一条语句的执行,如果想执行多条语句,需用大括号括起来
②控制多条语句的格式
if (表达式)
{
语句A;
语句B;
}
3. if…else…的用法
①格式
if (表达式)
语句A;
else
语句B;
②注意,else默认也只能控制一个语句(执行多条语句的方法和if一样),且语句A和语句B不能同时执行
4. if…else…if…else的用法
①格式
if(表达式)
语句A;
else if(表达式)
语句B;
else
语句C;
注意:
①如何控制多条语句的执行同if一样
②else…if的数量可增加
③语句A,B,C只能执行其中一条
5.C语言对于真假的判断
非零是真
零即是假
真用1表示
假用0表示
6.程序
①注意: 表达式不可写成"a<x<b"的形式,应写成"x>a&&x<b"的形式
if常见问题解析
1.空语句的问题
if (3>2);
等价于
if (3>2)
; //这是一个空语句
所以一般情况下if的表达式后面不能加";"
选择_switch
1.格式
switch(表达式)
{
case 常量表达式A:
语句1;
break;
case 常量表达式B;
语句2;
break;
default:
语句N;
}
2.用法
①break表示退出。例如若语句1后没有break,则也要执行语句2。即从开始执行到break结束。
②default可以出现在任何位置,也可以没有,但建议写在末尾,表示除去case匹配的其他情况。
③有些书籍中也把switch当做选择结构
④注意:case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
(补充)常量表达式(const experssion):是指(1)值不会改变 并且 (2)在编译过程就能得到计算结果的表达式。字面量属于常量表达式,用常量表达式初始化的const对象也是常量表达式。
一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定。
例子:
const int a =1; //常量表达式
cosnt int b=a+1; //常量表达式
int c=2; //初始值是字面值常量,当c数据类型是普通int。
const int d=fun(); //fun()值要在运行时得到,d不是字面值常量
3.举例
switch(1+1)
{
case 1:
printf("1\n");
break;
case 2:
printf("2\n");
printf("...");
break;
default:
printf("。。。");
}
输出结果:
2
...