C语言基础6分支结构

分支结构

分支结构:又被称之为选择结构

概念

选择结构:根据条件成立与否,选择相应的操作

条件建构

  • 关系表达式:含有关系运算符的表达式(<,>,>=,<=,!=,==)
  • 逻辑表达式:含有逻辑运算符的表达式(&&,||,!),往往用来构建复杂的符合条件:

比如:

  • 常量/变量:值是否非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 语句 {} 内的任意位置。

总结

如果只需要一个判断结果,使用 单分支
如果需要两个判断结果,且只能有两个判断结果,使用 双分支
如果需要判断 N 个结果中的某几个,或者所有,使用 多分支

条件表达式中的运算符优先级

逻辑非(!) > 算数运算符 ( +-*/% > 关系运算符( > < >= <= != == > 逻辑运算符( && || > 赋值运算符(= +=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值