zoukankan      html  css  js  c++  java
  • C++学习(十)(C语言部分)之 分支语句

     #include<stdio.h> // std 标准  io ---->  input  output  输入 输出  printf scanf getchar ......

     #include<stdlib.h> // system libary库

     

    //预处理命令 可以当做注释用
    #if 0 //#if 条件 如果调件满足 后面的这段程序会被编译

    #elif 1 //else if条件2

    #else // else

    #endif // 作为结束的标记

     

     

     

     

    一、c语言中有三大流程
    1、顺序结构 从上往下 依次执行 最基础的结构

    例如:

    将下列语句 依次执行 输出

     

    2、循环结构  就是一个一直执行的过程

    比如:一直吃  就是循环
    3、分支结构  就是一个带有选择性的 

    比如:“你今天吃饭还是不吃饭?” 根据当前情况进行选择   吃或者不吃就是分支

     

    二、分支

    分支
    1、if else
      > < = !=
      ! && ||
      数字也可以作为条件

      格式:
      if(饿){吃;}//只有if没有else

      if(条件)(语句1)//有if和else
      else(语句2)

        嵌套 if的()或者else的()里面还有if--->嵌套

      if(条件1){语句2} //多层分支
      else if(条件2){语句2}//可以有多个else if
      ......
      else if(条件n){语句n}
      else {语句}
      先判断if if成立执行语句1 直接跳出
      if不成立 判断else if 语句2 条件2成立执行语句2

    注意点:
            1、有if不一定有else 但是有else必定有if

            2、if 语句后面不要加分号

                 如果if满足不执行任何语句可以加分号 

            3、关于{}的省略

                 不加{} if只匹配离他最近的一句

                 如果{}只有一句 那么可以省略{}

                 刚刚开始写 不熟练就不要省略了

            4、条件的写法

                  if(20==x) 涉及到 == 的时候 常量放左边 避免少写=

     



    最简单的例子:

    如上图的程序 因为x=1,不满足x>2的条件 所以直接执行后面的语句

    如果改为x=3则会执行 括号里面的语句

     

    有else的语句://else是可以省略的

    所以 条件不同时 就会执行不同的语句

    条件嵌套例子;

    当前语句会执行49行这一句

     

    改变一下条件 男士改为女士

    当前会执行第53行的语句

     

    多层嵌套;

     

    在改代码中 一个 = 表示赋值   ==  表示等于

    根据设置断点 逐语句调试 最终执行的是第85行代码 然后跳出循环

     

    用数字做判断条件 0为假 其他数字为真

    因为条件为假 所以不执行里面的语句

     

     

    如果在if后面加分号

    他就会直接执行后面的语句

    所以 if(o);   就等价于  if(0){}

    有关{}的省略

     

    省略{}后

     

    说明 if 只控制第一句 

    2、switch

    用于枚举出所有的选项

       格式; 

    switch(变量)

    {括号不能省略

    default: 语句;break;//可以放在其他位置 也可以省略

    case 常量1;break;

    case 常量2;break;

    ...

    }

    //比较case后面的常量的值 和变量的值 相等就执行
    都不相等 就执行default

    所有可能的选项都能列举出来就用switch (可以和枚举搭配)
    所有分支全部可以用if,但是某些情况下switch更加简洁

    注意 1:default可以放任何地方 也可以不写 但是一个switch里面只能有一个default
            2:case后面的值不能相同 case后面只能是整型和单个字符 不可以是 小数和字符串(中文算字符串)
            3:break case和default后面
              先匹配对应的case 或者default 然后一直往后执行 直到遇到break结束

     

    例如:

     

     当我们删除后面的break时

    之所以会输出这样的结果是因为 当代码week=5 匹配到第138行时  开始执行 但是因为138行的break没有的 所以不会停下来 继续往后面执行 知道遇到break时调出循环

    所以会打印出两个结果

     

    三目 也可以作为分支

    ?:

    if(条件){语句1;}

    else{语句2;}

     

    条件?语句1:语句2  // 稍微简单点

    x=3>4?3:4;

    等价于

    if(3>4){x=3;}

    else{x=4;}

     

    同一个问题 两种处理方式   上面的是if else语句  下面的是三目运算

     

     

     调试代码如下:

      1 /*
      2 1、顺序结构  从上往下 依次执行
      3 2、循环结构  一直吃
      4 3、分支结构  吃或者不吃
      5 
      6 
      7 分支
      8   1、if else
      9   > < = !=
     10   ! && ||
     11   数字也可以作为条件
     12 
     13   格式:
     14   if(饿){吃;}//只有if没有else
     15   
     16   if(条件)(语句1)//有if和else
     17   else(语句2)
     18 
     19   嵌套 if的()或者else的()里面还有if--->嵌套
     20 
     21   if(条件1){语句2} //多层分支
     22   else if(条件2){语句2}//可以有多个else if
     23   ......
     24   else if(条件n){语句n}
     25   else {语句}
     26   先判断if if成立执行语句1 直接跳出
     27   if不成立 判断else if 语句2  条件2成立执行语句2
     28 
     29 注意点
     30   1、有if不一定有else 但是有else必定有if
     31   2、if 语句后面不要加分号
     32     如果if满足不执行任何语句可以加分号 
     33   3、关于{}的省略
     34 
     35   2、switch
     36   格式;
     37 
     38   switch(变量)
     39   { 括号不能省略
     40   default:语句;break;//可以放在其他位置 也可以省略
     41   case 常量1;break;
     42   case 常量2;break;
     43   ...
     44   }
     45   //比较case后面的常量的值 和变量的值 相等就执行
     46     都不相等 就执行default
     47 
     48 所有可能的选项都能列举出来就用switch (可以和枚举搭配)
     49 所有分支全部可以用if,但是某些情况下switch更加简洁  三目也简单
     50 
     51 注意 1:default可以放任何地方 也可以不写 但是一个switch里面只能有一个default
     52     2:case后面的值不能相同 case后面只能是整型和单个字符 不可以是 小数和字符串(中文算字符串)
     53     3:break case和default后面
     54       先匹配对应的case 或者default  然后一直往后执行 直到遇到break结束
     55       
     56  三目 也可以作为分支
     57     ?:
     58       
     59       if(条件){语句1;}
     60       else{语句2;}
     61       条件?语句1:语句2  // 稍微简单些
     62       x=3>4?3:4;
     63       
     64       等价于
     65 
     66       if(3>4){x=3;}
     67       else{x=4;}
     68 
     69 */
     70 
     71 #include<stdio.h>
     72 int main()
     73 {
     74 
     75 /*
     76     int weight = 103;
     77     char sex = 'W';
     78     if (weight <=100)//条件满足 执行()中的语句  
     79     {
     80         printf("吃饭
    ");//语句1
     81     }
     82     else//条件不满足 执行else中的语句  else是可以省略的
     83     {
     84         if (sex == 'M')//男士
     85         {
     86             printf("吃饭
    ");//体重大于100 并且sex是男士
     87         }
     88         else
     89         {
     90             printf("节食
    ");
     91         }
     92         
     93     }
     94 */
     95 
     96 /*
     97     int week = 5;//表示周五
     98     if (week == 1)
     99     {
    100         printf("周一
    ");
    101     }
    102     else if(week==2)
    103     {
    104         printf("周二
    ");
    105     }
    106     else if (week == 3)
    107     {
    108         printf("周三
    ");
    109     }
    110     else if (week == 4)
    111     {
    112         printf("周四
    ");
    113     }
    114     else if (week == 5)
    115     {
    116         printf("周五
    ");
    117     }
    118     else if (week == 6)
    119     {
    120         printf("周六
    ");
    121     }
    122     else if (week == 7)
    123     {
    124         printf("周末
    ");
    125     }
    126     else//当上面的条件全部不成立的话就执行该语句
    127     {
    128         printf("输入错误!!!
    ");
    129     }
    130 */
    131 
    132 /*
    133     if (0)//条件为假
    134     //{
    135         printf("hello world!
    ");//不加{} if只匹配离他最近的一句
    136         printf("你好世界!
    ");
    137     //}
    138 */
    139 
    140 /*
    141     int week = 5;
    142     switch (week)
    143     {
    144     default: printf("错误
    "); break;
    145     case 1: printf("周一
    "); break;
    146     case 2: printf("周二
    "); break;
    147     case 3: printf("周三
    "); break;
    148     case 4: printf("周四
    ");// break;
    149     case 5: printf("周五
    "); //break;
    150     case 6: printf("周六
    "); break;
    151     case 7: printf("周末
    "); break;
    152     }
    153     */
    154 
    155 /*
    156     int x = 1, y = 2, z = 3;//找到最大值
    157     int max;
    158     if (x > y)
    159     {
    160         //x比y大
    161         if (x > z)
    162         {
    163             max = x;//x最大
    164         }
    165         else
    166         {
    167             max = z;
    168         }
    169     }
    170     else
    171     {
    172         if (y > z)
    173         {
    174             max = y;
    175         }
    176         else
    177         {
    178             max = z;
    179         }
    180     }
    181     printf("%d
    ",max);
    182 */
    183 
    184 /*  三目运算
    185     max = x > y ?( x > z ? x : z) :( y > z ? y : z);
    186     printf("%d
    ", max);
    187 
    188 */
    189 
    190     getchar();//接收一个字符 防止闪屏
    191     return 0; //函数结束
    192 }
    193 
    194 
    195 
    196 
    197 //预处理命令  可以当做注释用
    198 #if 0 //#if 条件 如果调件满足 后面的这段程序会被编译
    199 
    200 #elif 1 //else if条件2
    201 
    202 #else // else
    203 
    204 #endif // 作为结束的标记

     2018-06-18 13:09:38

  • 相关阅读:
    【随手记】常用16进制代表的容量或位置
    精通css——position属性
    Ubuntu安装GitLab
    Linux内核
    分布式(一)——分布式系统的特性
    【树莓派】入门
    Intel CPU发展历史
    C++读mnist数据
    实验代码一:用来链表实现单向图
    Hadoop配置+centos6.5
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/9194946.html
Copyright © 2011-2022 走看看