C语言程序结构之分支结构if switch

一,程序的结构:顺序结构 :程序运行时按正常的流程运行   (程序内部运行实现线性结构:栈,队

列,链表,数组个人感觉)

分支结构 : 条件语句 if switch

循环结构 : while    do while    for

二,if语句

 1,分类1)第一种形式:

    构成:if(表达式){      

        语句块;

    }

    2)if....else的形式

    用法:如果表达式的值为真(1) 执行语句块1

    如果表达式的值为假(0) 执行语句块2

    格式:if(表达式)

    {        

        //如果表达式的值为真(1),会这行此代码块

        语句块1;

    }

    else

    {     

        //如果表达式值为假(0),会执行else大括号中的内容

        语句块2;

    }

    3)if...else 的嵌套使用

    if(条件1){      

        语句块1;

        if(条件2){    //条件1为真          

            }     

    }else{     

    }

    4)if ...else if...else

    if(条件1){        

        语句块1       

    }else if(条件2) {        

    }else if(条件3){      

    }

    else{       

    }

  2,注意点:以后if语句不管后面是否为空语句还是一句都加{} (防止出错)

    1)if(); if语句后面可以直接写一个“;”(“;”空语句),表示什么都不干

    2) 当if语句为真的时候只需执行一句话的时候,是可以省略括号的

    3)if(1)或者if(-1) 都是永真式,if(0) 永假式

    4)作用域紊乱的问题

      if(a>0) int num=-1; // num变量会报错,可以加{}

      printf("%d ",num);

    5)if省略大括号的问题

    //方法:从下到上找else  根据else找到能进行匹配的if

    6)return 关键字 在函数内的话,程序结束;

  7)闰年的判读 年份必须满足能够整除4同时不能整除100,或者年份能够整除400;

三,switch语句

   1) switch语句一种分支语句

    格式:switch(表达式){

    case 常量表达式1:语句1;

    case 常量表达式2:语句2;

    case 常量表达式3:语句3;

    case 常量表达式n:语句n;

    default:

        都不满足再执行的语句;

    }

    2)注意问题

    1>case的穿透问题:为了防止穿透,我们使用break;break,可以提前结束swith语句

    如果每个条件中case结束不加break,程序会继续执行,直到遇到break结束;

    2>switch(表达式) 表达式的返回值类型不能是floatdouble,可以是整型的和字符型

    case 后的也是常量表达式;

    3>如果定义了变量,需要要大括号括起来

    int a=3;

    switch(a+3){

        default:printf("error ");break;

        case 6:

            printf("xxx");

            int num = -1;

            break;

        }

原文地址:https://www.cnblogs.com/-boy/p/4023175.html