zoukankan      html  css  js  c++  java
  • 第6课

    第6课 - 分支语句

    1. if 语句分析

    (1)if 语句用于根据条件选择执行语句

          

    (2)else 不能独立存在且总是与它最近的 if 相匹配,else 语句后可以连接其它if语句

    (3)if 语句中零值比较的注意点,这个考点频繁出现在C语言笔试中!!!

    • bool类型  ==>  bool型变量应该直接出现在条件中,不要进行比较

                

    • 整型  ==>  变量和0值比较时,0值应该出现在比较符号左边     // 防止将 == 写成 =,那样条件永远不成立; 0放在左边,误写为 = 会编译报错

                

    • float型  ==>  因为float是不精确表示,0.0在内存中的表示可能是与其相近的一个值,所以不能直接和0值比较,需要定义精度

               

    2. switch语句分析

    (1)switch语句经常用在单个条件多个分支的情形

    (2)case语句后面必须要有break,否则会导致分支重叠,实际工作中很多的bug就是由于忘记加break导致的!

    (3)default语句有必要加上,以处理特殊情况

            

    (4)case语句中的值只能整型字符型

    (5)case语句的排列顺序遵照下面的规则,这样代码更加易读

    • 按字母或数字顺序排列各条语句
    • 正常情况放在前面,异常情况放在后面
    • default 语句只用于处理真正的默认情况

    【if 和 switch使用示例】

     1 #include <stdio.h>
     2 
     3 void f1(int i)
     4 {
     5     if( i < 6 )
     6     {
     7         printf("Failed!
    ");
     8     }
     9     else if( (6 <= i) && (i <= 8) )
    10     {
    11         printf("Good!
    ");
    12     }
    13     else
    14     {
    15         printf("Perfect!
    ");
    16     }
    17 }
    18 
    19 void f2(char i)
    20 {
    21     switch(i)
    22     {
    23         case 'c':
    24             printf("Compile
    ");
    25             break;
    26         
    27         case 'd':
    28             printf("Debug
    ");
    29             break;
    30         
    31         case 'o':
    32             printf("Object
    ");
    33             break;
    34             
    35         case 'r':
    36             printf("Run
    ");
    37             break;
    38         
    39         default:
    40             printf("Unknown
    ");
    41             break;
    42             
    43     }
    44 }
    45 
    46 int main()
    47 {
    48     f1(5);  // Failed!
    49     f1(9);  // Perfect!
    50     f1(7);  // Good!
    51     
    52     f2('o');  // Object
    53     f2('d');  // Debug
    54     f2('e');  // Unknown
    55 
    56     return 0;
    57 }

    if 和 switch有各自适用的场合,这样代码看起来逻辑更加清晰!但是if 和 switch 两者也能进行转换,将前面的代码进行转换......

    【有趣的角色互换】

     1 #include <stdio.h>
     2 
     3 void f1(int i)
     4 {
     5     switch( i < 6 )
     6     {
     7         case 1:
     8             printf("Failed!
    ");
     9             break;
    10         
    11         default:
    12             switch( (6 <= i) && (i <= 8) )
    13             {
    14                 case 1:
    15                     printf("Good!
    ");
    16                     break;
    17                     
    18                 default:
    19                     printf("Perfect!
    ");
    20                     break;
    21             }
    22             break;
    23     }
    24 }
    25 
    26 void f2(char i)
    27 {
    28     if( 'c' == i )
    29     {
    30         printf("Compile
    ");
    31     }
    32     else if( 'd' == i )
    33     {
    34         printf("Debug
    ");
    35     }
    36     else if( 'o' == i )
    37     {
    38         printf("Object
    ");
    39     }
    40     else if( 'r' == i )
    41     {
    42         printf("Run
    ");
    43     }
    44     else
    45     {
    46         printf("Unknown
    ");
    47     }
    48 }
    49 
    50 int main()
    51 {
    52     f1(5);  // Failed!
    53     f1(9);  // Perfect!
    54     f1(7);  // Good!
    55     
    56     f2('o');  // Object
    57     f2('d');  // Debug
    58     f2('e');  // Unknown
    59 
    60     return 0;
    61 }
  • 相关阅读:
    解决android Failed to rename directory 问题
    Android APK反编译
    SQL的bit列名转换成access是/否数据类型,True无效的问题
    android获取屏幕硬件分辨率方法
    cursor:hand 与 cursor:pointer 的区别
    解决android调试是出现:Reinstallation failed due to different application signatures
    Flash as3 基础:AS3中的getChildByName(转)
    机器学习之特征预处理
    用户态和内核态的区别
    深度学习和神经网络的区别(转载)
  • 原文地址:https://www.cnblogs.com/shiwenjie/p/11853875.html
Copyright © 2011-2022 走看看