【C语言篇】☞ 5. 分段组织、循环结构

支行组织:

 switch语句: 

图片 1

  1. 表达式

表明式总结的结果必然是整型值(short,int,long,char字符是独特的整型),无法是浮点型,也无法是字符串。

  1. case:

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

2) 二个case只可以对象3个常量值

3) 常量值必须是整型

4)case后的值不能另行(每个case值不能够再度)

5)每种case后边能够跟0~n多条语句

  1. default
  • 可以有,也可以没有,也能够不管放
  • default并不一定非得放在最后1个分层,也得以放中间或前边。一般景况下,都坐落最终。
  • 无论是default写到什么地方,
    它都会最终执行(唯有前边全体的case都不满意的气象才会实行)只要某贰个case知足,
    那么前面全体的case和default都会失灵。

 

注意点:

  • case
    前面包车型客车常量无法再次
  • break
    作用:结束switch语句
  • switch
    语句只有蒙受break 可能 switch前边大括号才会终结
  • 当switch与某1个case匹配了,那么前面包车型地铁具备case都失效了
  • case
    前边只好1个常量大概常量表明式
  • 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;

}

 

/*

  壹 、当有些变量唯有多少个固定的取值时候,使用switch会越发简洁

  贰 、假使是距离[-无穷,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;

}

 

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
  • 最多只好有1个else语句
  • 要是if语句前边只有一条语句,那么if前面包车型地铁大括号是能够归纳的(平常开发也不这么干)

 

if嵌套:if语句内部能够嵌套其余if语句

总计: if语句也是言辞,只要能够写语句的地点都足以写if语句

if(条件表明方式){

    语句;

    …

    if(条件表达式){

        语句;

        …

    }

    语句;

    ….

}

 

简简单单大括号的if语句:当if前面唯有一条语句的时候,那么if前面的大括号能够大约

 

循环结构:

  循环是叁回再一次的实施同一的代码块

  循环:用来拍卖部分再度执行的操作

 

写循环的具体步骤:

 壹 、明确必要重新执行的操作

 贰 、分明循环终止的规则:

    1) 在循环初叶以前,供给做点事(定义三个巡回控制变量并将其起首化)

    2) 明确循环约束原则

    3) 在每2遍巡回结束的时候或在循环中,要去改变循环控制变量的值,让它不断接近约束原则

 

 

最不难易行的死循环:

 

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

  图片 2

  

do while和while的区别:

    while假如条件表明式一起头就不满足, 那么循环体永远不会被实践

             

    do while假诺条件表明式一初阶就不满意, 同样会实施贰回循环体

    也正是说: 无论条件表明式是不是满足, do while始终会实施2次循环体