第六章:分支控制流(if else switch)

Posted 歌咏^0^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章:分支控制流(if else switch)相关的知识,希望对你有一定的参考价值。


    

一、if语句

(1)if单独使用
          if(表达式)
          {
    
          }
         没有else 与之匹配
    
   用法:
      只要表达式的值为真(非0),执行{ }复合语句 .
      "表达式":任意的C语言合法的表达式都可以
    
    如果只有一条执行语句,可以这样写:
    if(表达式)
        执行语句xxxx;          ---> 如果表达式为真,那么执行该语句
         yyyyy;                      ---> 不管条件是否为真,永远执行这个语句,因为这个表达式不属于if响                                            应范围

  (2)if 与 else 配合使用
    if(表达式)//如果为真,执行复合语句1,如果为假,则执行复合语句2
    {
        复合语句1;
    }
    else{
        复合语句2;
    }

  if(判定条件)
    xxxxx;
  else
    yyyyy;     可以

(3)
    if(表达式1)//如果为真,执行复合语句1
    {
        复合语句1;
    }
    else if(表达式2)
    //如果判定条件1和判定条件2都满足,那么只会执行复合语句1,而不会执行复合语句2
    {
        复合语句2;
    }
    else if(表达式3)
    {
        复合语句3;
    }
    else   //以上三个条件都不满足的时候,就会执行这个
    {
        复合语句4;
    }


(4)if的嵌套: 条件里面再分条件
    if(表达式1)//如果为真,执行复合语句1
    {
        if(表达式11)
        {
            复合语句1;
        }            
    }
    else if(表达式2)
    {
        复合语句2;
    }    

编程规范:写完if或else后,不管后面有没有语句,请先写{}圈定它的范围,然后再到{}里面补充语句,请用Tab缩进


注意写法:
        1、if(a>b);
        2、if(a=b)
        3、if(a>b>c)
        4、if(a>b) printf("1\\n");  else  printf("2\\n");
        5、if( 1)
    if(2)
        printf("1\\n");
    else 
        printf("2\\n");

---------------------------------------------------------

练习1:制作一个简单的打分系统(满分制:100)
    60分以下:评级 D
    60-80:    评级 C
    80-90:    评级 B
    90-100:    评级 A
    不在0-100范围之内,错误


二、switch语句(开关语句)

格式:
        switch(表达式) // 或者也可以说是 判断值
        {
            case 常量表达式1:
                    执行语句1
                    break;
            case 常量表达式2:
                    执行语句2
                    break;
            case 常量表达式3:
                    执行语句3
                    break;
            default:
                    其他情况下执行的语句
                    break;
        }

  1. "表达式"的值必须为整数值(整型,字符型,枚举
  2. "常量表达式"的值必须为整数值,且每个case后面的常量表达式的值必须不相同常量表达式不能出现变量
  3. 当表达式的值与某一个case后面的常量表达式的值相同时,就会打开"开关",执行冒号后面的语句,直到有break语句就提前跳出switch,否则就轮到下一个case,且不会比较常量表达式的值,就直接执行冒号后面的语句(因为开关已经打开了)。当所有的语句都执行完了,就结束了switch。
  4. break;  提前跳出switch语句,常用的用法是每个case语句后都有一个break语句。
  5. 当所有case后面的常量表达式都不匹配时,就会执行default后面的语句,且打开"开关"。

补充:switch语句中多条case值可以执行同一条语句,例

          switch(x)

          {

               case 1:case2:case3:  语句1;(或写为:case 1||2||3 :  语句1;)

               .......................

          }    


注意:
    1,break在这里是退出switch的关键,如果在case当中的执行语句中没有遇到break,它将会一直执行下去,直到遇到break或者到底了
    2,default这个可加可不加
    3,default放在哪里都不会影响switch的正常使用
    4,“判断值”只能是整型数据或者是枚举

---------------------------------------------------
练习2:  计算加盟费
    小张加盟了一家餐饮企业,在每个季度结束后,小张必须向总部缴纳加盟费,
    加盟费与营业额的提成关系如下
        营业额                 提成系数
            0<= n <10w                 0.1
        10<=n <20w                0.075
        20<=n <40w                0.05
        40<=n <60w                0.03
        60<=n <100w              0.015
        n >=100w                     0.01
        请输入小张的营业额,然后求出他需要提交的加盟费    

以上是关于第六章:分支控制流(if else switch)的主要内容,如果未能解决你的问题,请参考以下文章

(翻译)《二》语言基础--控制流语句

第16章 控制流

JavaScript-流程控制(if else三元表达式switch)循环(forwhilecontinue break)

Java控制语句——分支循环跳转

Go语言中的流程控制

Java if else语句