首页 > 技术文章 > 第6课 - 分支语句

kojull 2019-11-10 20:45 原文

if语句分析

·if语句用于根据条件选择执行语句

·else不能独立存在且总是与它最近的if相匹配

·else语句后可以连接其它if语句

  if( condition )

  {

    //statement 1

  }

  else

  {

     //statement 2

  }

 

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

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

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

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

 

switch语句分析

  switch语句对应单个条件多个分值的情形;

  case语句的分支必须要有break,否则会导致分支重叠;

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

case语句中的值只能是整型或字符型,并且只能是常量。

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;
}

switch语句和if语句相互替换后的示例

#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;
}

 

小结:

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

  ·switch语句适用于对离散值进行判断的情形中

  ·if和switch语句在功能上可以相互替换

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

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

 

 

 

 

 

 

 

 

 

 

推荐阅读