• 分支语句


    分支语句

    if语句

    • if语句用于根据条件选择执行语句
    • else不能独立存在且总是与它最近的if相匹配
    • else 语句可以连接其他if语句
    • if语句中零值比较的注意点
      • bool型变量应该直接出现于条件,不要进行比较
      • 变量和0值比较时,0值应该在比较符号左边
      • float型变量不能直接进行0值比较,需要定义精度

    switch语句

    • switch 语句对应单个条件多个分值的情形
    • case 语句分支必须要有break,否则会到最后分支重叠
    • default语句有必要加上,以处理特殊情况
    • case语句中的值只能是整形或者字符型
    • case语句的排列顺序
      • 按字母或者数字顺序排列各条语句
      • 正常情况放在前面,异常情况放在后面
      • default语句只用于处理真正的默认情况

    例子:

    #include <stdio.h>
    void f1(int i)
    {
        if( i < 6 )
        {
            printf("Failed!
    ");
        }
        else if( (6 <= i) && (i <= 8) )
        {
            printf("Good!
    ");
        }
        else
        {
            printf("Perfect!
    ");
        }
    }
    
    void f2(char i)
    {
        switch(i)
        {
            case 'c':
                printf("Compile
    ");
                break;
    
            case 'd':
                printf("Debug
    ");
                break;
    
            case 'o':
                printf("Object
    ");
                break;
    
            case 'r':
                printf("Run
    ");
                break;
    
            default:
                printf("Unknown
    ");
                break;
        }
    }
    
    int main()
    {
        f1(5);
        f1(9);
        f1(7);
    
        f2('o');
        f2('d');
        f2('e');
    
        return 0;
    }
    

    结果:

    例子:有趣的角色互换

    #include <stdio.h>
    
    void f1(int i)
    {
        switch( i < 6 )
        {
            case 1:
                printf("Failed!
    ");
                break;
            
            default:
                switch( (6 <= i) && (i <= 8) )
                {
                    case 1:
                        printf("Good!
    ");
                        break;
                        
                    default:
                        printf("Perfect!
    ");
                        break;
                }
                break;
        }
    }
    
    void f2(char i)
    {
        if( 'c' == i )
        {
            printf("Compile
    ");
        }
        else if( 'd' == i )
        {
            printf("Debug
    ");
        }
        else if( 'o' == i )
        {
            printf("Object
    ");
        }
        else if( 'r' == i )
        {
            printf("Run
    ");
        }
        else
        {
            printf("Unknown
    ");
        }
    }
    
    int main()
    {
        f1(5);
        f1(9);
        f1(7);
        
        f2('o');
        f2('d');
        f2('e');
    
        return 0;
    

    这里是将if 语句用switch语句进行改写,switch语句用if语句进行改写,结果一样。

    总结

    • if语句适用于复杂逻辑进行判断的情形中
    • switch语句适用于对离散值进行判断的情形中
    • if语句和switch语句在功能上可以相互替换
    • if语句对于“按片”分支判断的情形更加简洁
    • switch语句对于多分支判断的情形更加简洁
  • 相关阅读:
    LoginStatus 如何指向不同的登陆地址以及“invalid FORMATETC”
    不排序和可以重复Key的SortedList。
    一个新样式
    如何给另一个桌面的程序发送消息?
    Html使用自定义光标的一点需要注意的小问题。
    用stream.Read不能完整读取内容的问题。
    全国天气预报代码(转帖)
    Access处理DISTINCT的Bug?
    asp.net和asp运行结果不同?
    学习枚举类型/FlagsAttribute属性
  • 原文地址:https://www.cnblogs.com/yanyun888/p/6061247.html
Copyright © 2020-2023  润新知