浅墨浓香

想要天亮进城,就得天黑赶路。

导航

第6课 分支语句

Posted on 2016-03-25 00:36  浅墨浓香  阅读(366)  评论(0编辑  收藏  举报

1. if语句

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

(2)else不能独立存在且总是与它之前最近的if相匹配

(3)else语句后可以接连其他if语句

 

(4)if语句中零值比较的注意点

  ①bool型变量直接出现于条件中,不要进行比较

  ②变量和0值比较时,0值应该出现在比较符号左边

  ③float型变量不能直接进行0值比较,需要定义精度

 

2. switch语句分析

(1)switch语句对应单个条件多个分值的情形

(2)case语句分支必须要有break,否则会导致分支重叠

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

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

(5)case语句的排列顺序

  ①按字母或数字顺序排列各条语句

  ②正常情况放在前面,异常情况放在后面

  ③default语句只用于处理真正的默认情况

【编程实例】

if和switch的使用示例 有趣的角色互换
#include <stdio.h>

void f1(int i)
{
    if( i < 6 )
    {
        printf("Failed!\n");
    }
    else if( (6 <= i) && (i <= 8) )
    {
        printf("Good!\n");
    }
    else
    {
        printf("Perfect!\n");
    }
}

void f2(char i)
{
    switch(i)
    {
        case 'c':
            printf("Compile\n");
            break;
        
        case 'd':
            printf("Debug\n");
            break;
        
        case 'o':
            printf("Object\n");
            break;
            
        case 'r':
            printf("Run\n");
            break;
        
        default:
            printf("Unknown\n");
            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!\n");
            break;
        
        default:
            switch( (6 <= i) && (i <= 8) )
            {
                case 1:
                    printf("Good!\n");
                    break;
                    
                default:
                    printf("Perfect!\n");
                    break;
            }
            break;
    }
}

void f2(char i)
{
    if( 'c' == i )
    {
        printf("Compile\n");
    }
    else if( 'd' == i )
    {
        printf("Debug\n");
    }
    else if( 'o' == i )
    {
        printf("Object\n");
    }
    else if( 'r' == i )
    {
        printf("Run\n");
    }
    else
    {
        printf("Unknown\n");
    }
}

int main()
{
    f1(5);
    f1(9);
    f1(7);
    
    f2('o');
    f2('d');
    f2('e');

    return 0;
}

 

3. 小结

(1)if语句适用于复杂逻辑进行判断的情形中

(2)switch语句适用于离散值进行判断的情形中

(3)if语句和switch语句在功能上可能相互替换

(4)if语句对于“按片”分支判断的情形更加简洁

(5)switch语句对于多分支判断的情形更加简洁