分支结构
分支结构:又被称之为选择结构
概念
选择结构:根据条件成立与否,选择相应的操作
条件建构
- 关系表达式:含有关系运算符的表达式(<,>,>=,<=,!=,==)
- 逻辑表达式:含有逻辑运算符的表达式(&&,||,!),往往用来构建复杂的符合条件:
比如:
- 常量/变量:值是否非0,取值(0|1)
注意:类似以下写法,没有意义
if(x+y)//编译通过,但没有实际意义,不建议这样写
选择结构的形式
单分支
语法:
if(条件表达式)
{
语句1;
}
说明:条件表达式成立,执行语句一,否则跳过该分支结构
例子:
双分支
语法:
if(条件表达式)
{
语句1;
}
else
{
语句2;
}
说明:条件表达式成立,执行语句1,否则执行语句2。双分支不管条件是否满足,都要执行。
例子:
三目运算符
语法:
表达式1 ? 表达式2 : 表达式3;
说明:?: 条件运算符,主要可以简化双分支为同一变量赋值的操作。
求值过程:
先计算 表达式 1 的值,非 0 ,则将 表达式 2 的结果作为条件运算符的最终结果;否则将 表达 式 3 的结果作为 条件运算符 的 最终结果 。 举例多分支
语法:
if(条件1)
{
语句1;
} else if(条件2)
{
语句2;
}
...
else
{
语句n+1;
}
举例:
swith
语法:
switch(表达式) // 不能是布尔型和 浮点型
{
case 常量表达式1:
语句体1;
break;
case 常量表达式2:
语句体2;
break;
...
case 常量表达式n:
语句体n;
break;
default:
语句体n+1;
break;
}
说明:
⑴ switch 后括号内的表达式可以是任何类型的表达式; ⑵ 若表达式的值与某个常量表达式的值相等时,执行此 case 后面的语句;若没有相等的值时,执行 default后面的语句; ⑶ 每个 case 后面的常量表达式的值都必须不相同,否则出现矛盾; ⑷ 各个 case 和 default 出现的次序不影响执行结果; ⑸ case 后面的语句中如果没有 break 语句,则执行完本 case 后的语句会接着执行下面的 case ( case 穿透) ; ⑹ 多个 case 可共用一组语句。 注意: 1. 表达式一般写一个变量,变量的值是一个确定的常量。 2. 当遇到 break 或者 switch 语句的右大括号时, switch 语句结束。 3. 表达式中的数据类型: char , short , int , long , long long ,不能是浮点型。 表达式和常量的数据类型要一致(支持隐式转换),比较是否相同 举例: switch 语句的 case 穿透: 1. case 穿透:当 case 后的 break 被省略;就会直接执行它后面紧跟的 case 中的语句(不会判断表达式是否和它后面的case 常量是否相同),这样的现象称之为 case 穿透。 2. default 语句一般放在所有 case 之后,表明所有的 case 都不成立时,执行 default 中的语句; default 语句可以放在switch 语句 {} 内的任意位置。