任何一个程序都是可以由三种结构的组合:
1、顺序结构 2、分支结构 3、循环结构
选择(分支)及结构: //从众多的分支中选择一个
选择的条件构造:1-关系运算 2-逻辑运算
1、关系运算:
运算符: ==,< , >, <= , >= ,!=
运算:
eg: int a;
int b;
a > b;
这个关系式的结果反应的是关系运算的成立与否,即因为计算机只能存入0 和 1 两个数字,所以
按照规定C语言中用int类型来记录关系运算的结果:
关系成立-----------结果为1
关系不成立 ------------结果为0 //这里的都是逻辑值 也可以理解为 0的时候关系不成立 ,!0的情况关系都是成立的
2、逻辑运算:
与 &&
运算规则:
一假则假
运算特性:截断特性(短路特性) 运算顺序 始终先算左边的第一个式子 并且若第一个是假则后面的式子不继续进行运算
或 ||
运算规则:
一真则真
也有截断特性(短路特性)
非 !
运算规则:
真假相对
注意: && 的优先级高于 || 的优先级
C语言中实现选择的语句:
1、if
2、switch
1、if
语法:
if(表达式)
{
语句1;
}
语义:如果表达式判断为真则执行if中的语句,如果表达式判断为假,则继续运行程序下面的代码。
if(表达式)
{
语句1;
}else
{
语句2;
}
语义:
如果表达式判断为真,则执行语句1 ,否则执行语句2。(语句1 或者是 语句2 执行完之后 表示if 语句的结束 ,程序继续往下进行。)
if -else -if //多分支语句
语法:
if(表达式1)
{
语句1;
}else if(表达式2)
{
语句2;
}else if(表达式3)
{
语句3;
}.....
语义:
如果表达式1 判断为真,则执行语句1。
否则,继续判断表达式2,如果表达式2为真,则执行语句2。
否则,继续判断表达式3,如果表达式3为真,则执行语句3。.............
注意:
1、if 后面不能加分号 ;
2、if- else 的配对关系 //else 总是和离他最近的前面的尚未使用的if配对
允许单独的 if 语句出现,不允许单独的else出现
3、每一个else必然对应一个if
条件运算符:
? : // 三目运算符号 ------> 运算符
格式:
表达式1?表达式2:表达式3
运算过程: //实际上是if-else语句的简写
表达式1? 表达式1是真还是假
若是判断为真 执行表达式2
若是判断为假 执行表达式3
2、switch
语法:
switch(表达式)
{
case 常量表达式1;
语句1;
case 常量表达式2;
语句2;
case 常量表达式n;
语句n;
default : //缺省 (默认)
语句n + 1;
}
语义:求解 表达式,根据表达式的结果,去匹配case后面的常量表达式的结果,
匹配(值相当)成功之后,
则执行对应的case 下面的语句。
直到遇到了 break 或者是 switch 语句的 } (右花括号)
(switch 只匹配一次 若是第一次匹配成功了 没有遇到break 也没有遇到 } ,那么switch 不会结束 ,下面的语句都会进行输出。)
注意:
1、 switch 表达式 与 case 只会匹配一次
2 、switch 中的表达式必须是一个整型的表达式 或者是与整型兼容的类型的表达式
3 、case 后面 必须是一个常量表达式
4 、case xxx:
default // 标签
标签 用来 程序中某些代码 做个标记
5 、default 位置 是灵活的 但在每个语句的后面最好偶读加上break。
switch 可以多种情况匹配同一种操作
eg: switch
{
case 1:
case 2;
case 5:
printf(“xxx\n”):
}