【C语言篇】☞ 5. 分支结构、循环结构

分支结构:

if 语句:

  1. 第一种:如果条件表达式成立就执行小括号后面大括号中的语句

if(条件表达式){

    语句;

    ...

  1. 第二种:如果条件表达式成立就执行if后面小括号后面大括号中的语句,否则就执行else后面大括号中语句

         这里至少有一个代码会被执行

if(条件表达式){ 

    语句;

    ...

}else{

    语句;

    ...

}

  1. 第三种:

if(条件表达式1){

    语句;

    ....

}else if(条件表达式2){

    语句;

    ....

}else if(条件表达式3){

    语句;

    ....

}

....

else{

    语句;

    ....

}

特点:

  • 这么多代码块中最多只有一个代码块会被执行
  • 当程序执行条件表达式3时候,说明其前面的所有表达式都不成立
  • 如果if语句中有else 那么必有一个代码块会被执行到

 if语句的特点:

  • 都是if开头
  • 可以有任意个else if
  • 最多只能有一个else语句
  • 如果if语句后面只有一条语句,那么if后面的大括号是可以省略的(通常开发也不这么干)

 

if嵌套:if语句内部可以嵌套其他if语句

总结: if语句也是语句,只要能够写语句的地方都可以写if语句

if(条件表达方式){

    语句;

    ...

    if(条件表达式){

        语句;

        ...

    }

    语句;

    ....

}

 

省略大括号的if语句:当if后面只有一条语句的时候,那么if后面的大括号可以省略

 

 switch语句: 

1. 表达式

表达式计算的结果一定是整型值(short,int,long,char字符是特殊的整型),不能是浮点型,也不能是字符串。

2. case

1) 必须是常量,不能是变量

2) 一个case只能对象一个常量值

3) 常量值必须是整型

4)case后的值不可以重复(每个case值不能重复)

5)每个case后面可以跟0~n多条语句

3. default

  • 可以有,也可以没有,也可以随便放
  • default并不一定非得放在最后一个分支,也可以放中间或前面。一般情况下,都放在最后。
  • 无论default写到什么地方, 它都会最后执行(只有前面所有的case都不满足的情况才会执行)只要某一个case满足, 那么后面所有的case和default都会失效。

 

注意点:

  • case 后面的常量不可以重复
  • break 作用:结束switch语句
  • switch 语句只有遇到break 或者 switch后面大括号才会结束
  • 当switch与某一个case匹配了,那么后面的所有case都失效了
  • case 后面只能一个常量或者常量表达式
  • switch 后面的小号中只能是整形表达式

/*

 case 1:

 int a = 2;

 break;

 */

// 如果在case中定义了新的变量,必须用大括号{}包住

case 0:

{

    int a = 2;

    break;

}

 

switch (month) {

    case 12:

    case 1:

    case 2:

        printf("冬季\n");

        break;

    case 3:

    case 4:

    case 5:

        printf("春季\n");

        break;

    case 6:

    case 7:

    case 8:

        printf("夏季\n");

        break;

    case 9:

    case 10:

    case 11:

        printf("秋季\n");

        break;

    default:

        printf("不要放弃治疗\n");

        break;

}

 

/*

  1、当某个变量只有几个固定的取值时候,使用switch会更加简洁

  2、如果是区间[-无穷,1] [10,+无穷] 就用if  if(x <= 1 || x >= 10)

 */

 

案例:

/**  加减乘除计算器 (提示:录入1+2输出1+2=3*/

int test() {   

    int num1,num2; //定义两个变量,表示操作数

    char operator; //定义一个char类型变量,表示要进行操作

    printf("请按照如下格式录入(1 + 1)\n"); //提示用录入

    scanf("%d %c %d",&num1,&operator,&num2);

    int result;

    switch (operator) {

        case '+':

            result = num1 + num2;

            break;

        case '-':

            result = num1 - num2;

            break;

        case '*':

            result = num1 * num2;

            break;

        case '/':

            if (num2 == 0) {

                printf("除数不能为零\n");

                return 0;

            }

            result = num1 / num2;

            break;

        default:

            printf("你录入格式错误\n");

            break;

    }

    printf("%d %c %d = %d\n",num1,operator,num2,result);

    return 0;

}

 

循环结构:

  循环是一次又一次的执行相同的代码块

  循环:用来处理一些重复执行的操作

 

写循环的具体步骤:

 1、确定需要重复执行的操作

 2、确定循环终止的条件:

    1) 在循环开始之前,需要做点事(定义一个循环控制变量并将其初始化)

    2) 确定循环约束条件

    3) 在每一次循环结束的时候或在循环中,要去改变循环控制变量的值,让它不断接近约束条件

 

 

最简单的死循环

 

  • while (1);
  • for(;;); // for(;1;); 注意:for循环中的条件表达式默认为真

  

  

do whilewhile的区别:

    while如果条件表达式一开始就不满足, 那么循环体永远不会被执行

             

    do while如果条件表达式一开始就不满足, 同样会执行一次循环体

    也就是说: 无论条件表达式是否满足, do while始终会执行一次循环体

 

 

posted @ 2017-02-10 13:11  专注·精彩  阅读(631)  评论(0编辑  收藏  举报