C语言(4)流程控制(i)

流程控制简介

选择结构 (分支结构) 
循环结构 
顺序结构 
-----------------------------------------
任何一个程序,都是这三种结构组合而成 

if   else

前言

判断一个数与5的关系? 

//选择?

比较 --- 选择 提供判断的依据 --- 进行选择 
比较:
 C语言中通过 关系运算 和 逻辑运算 构造 选择判断的条件

关系运算
“ > ” “ >= ” “ < ”  “ <= ” “ == ” “ != ” 


int n;
n > 5 //关系表达式
         //表达式都是有值 -- 结果 反映 一种关系成立与否 
         //                  0  --- 假 
         //                  1  --- 真 
        //                  逻辑值 
        //                  C语言中 用int型来记录 逻辑结果 
       //表达式都是类型 -- 类型 (布尔类型) -- true false 

int a = 9;      
0<a<5  //与数学上的 表达式 含义不同  正确的应是a > 0 && a < 5 

(0<a)<5//上式可看为这个,先是0<a结果为真,记1,之后1<5 结果为真   

逻辑运算

&&  与(且) 
||     或 
!     非 

&& 与 
   运算规则:
   一假则假
   表达式1 && 表达式2
   特性:
       短路特性(截断特性)//表达式1为0则不计算表达式2
|| 或 
     运算规则:
     一真则真
   表达式1 || 表达式2
    特性:
       短路特性(截断特性)//表达式1为1则不计算表达式2
注意:
    && 及 || 都先算左边的表达式 
     
!  非 
     运算规则:
     真假相对    

问题:    

C语言中如何表示"真"和"假"?
            整型 1     0
系统如何判断一个量的"真"和"假"?
 规定:
     0为假  //从数值角度 看 其值为0 
            0 
            '\0'
            NULL (空指针) --- 编号0地址 
     非0就是真 //从数值角度 看 其不值为0
           1 2 3 4 
           'a' 'b' 
           -1 

选择语句:

1. if 语句
   //形式1 ---处理单个情况 --单分支 
   //形式2 ---处理两种情况 --双分支
   //形式3 ---处理多种情况 --多分支 

   形式1 
   语法形式:
   if (表达式) 
   {
      语句
   } //复合语句 
   
   语义:
   如果,表达式 为真 
              则 执行 语句 ,
              语句执行完,也表示if语句结束了  程序继续往下 
              表达式 为假 
             表示if语句结束
             程序继续往下 
   注意:
      if(表达式) ; //不要写分号 
      
  // 形式2:
   if (表达式)
   {
         语句1
   }
   else
   {   
     语句2
   }     
  
   语义:
   如果 ,表达式为真  
          执行 语句1 ,语句1 执行结束,表示if语句结束,程序继续往后
          表达式为假
           执行 语句2 ,语句2 执行结束,表示if语句结束,程序继续往后

   注意:
    1.  if (表达式) ; //不要写分号
    2.     
        if (表达式)
       {
            语句1
       }
       else   (表达式) 、//没有这种写法 
       {   
        语句2
       }     
      
                        
   //形式3 --多分支  --阶梯分支 
   语法:
     if (表达式1)    //?不要加分号 
     {
        语句1;
     }else if (表达式2) //? 不要加分号 
     {
        语句2;
     }else  ... 
     ....
     {
     }else 
     {
       
     }
     
   语义:
     如果,表达式1 为真 ,执行语句1,语句1 执行结束,表示if语句结束,程序继续往后
           表达式1 为假 ,
               判断 表达式2 ,
                    为真 执行语句2,语句2 执行结束,表示if语句结束,程序继续往后
                    为假
                        判断 表达式3 
                         ... 

注意:

  1. if (表达式)  ; //不能加分号
  2. 有单独if语句 
     没有单独 else 语句?
     else 一定是和某一个if配对的 
  3.对应的关系 
    如果有嵌套关系,
    一般从最里面的else开始找,
    往前找离else最近的还未使用的if配对
  
if ()
{
    if ()
    {
    }
    else
    {

    }
}

else
{
    if ()
    {
    }
    else
    {

     }

}

条件运算:

 表达式1?表达式2:表达式3
   含义:
         判断 表达式1
      真
         执行表达式2      
      假      
         执行表达式3

   if-else //语法结构 条件运算实际上就是if-else 简写 

 switch 语句    

   switch(表达式)
   {
       case 常量表达式1:
          语句1
       case 常量表达式2:
          语句2
       case 常量表达式n:
          语句n
       default
          语句n+1
   }
   
   //
   switch (表达式)   // 表达式是一个 值 
   {
       case 常量表达式1:   //常量表达式1 不是判断条件 都是一个 值 
          语句1
          break;
       case 常量表达式2:
          语句2
          break;
       case 常量表达式n:
          语句n
          break;
       default
          语句n+1
         
   }
   //语义:
   求解 表达式 
   用表达式结果 
   与 下面case 后的常量表达式的结果 进行匹配 
   匹配成功,则执行对应case下的语句 
   直到遇到了break 或者是 遇到了 switch 语句 '}' (右花括号)
   则结束 
   
 注意:
   1.switch 后面表达式,必须是一个整型表达式 
     //不能是浮点型 
   2. case 后面 ,是一个整型常量表达式 //不能出现变量 
   3. label //标签 
      可以给执行语句起一个标签,标签来代表这句话 
   4. default 不一定写在最后 
      要求,default 最好也写上break

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值