【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

  1. 表达式

表达式计算的结果自然是整型值(short,int,long,char字符是异样之整型),不可知是浮点型,也非能够是字符串。

  1. case:

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

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

3) 常量值必须是整型

4)case后底值未得以另行(每个case值不能够再次)

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

  1. default

  2. 好生,也可无,也可任由放

  3. default并不一定非得在最后一个支行,也得加大中间或前。一般情形下,都位于最后。
  4. 不论是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循环中之尺度达式默认为真正

  图片 2

  

do while和while的区别:

    while如果条件表达式一开始便未饱, 那么循环体永远不见面于执行

             

    do while如果条件表达式一开始便未饱, 同样会实行同样不行循环体

    也即是说: 无论条件表达式是否满足, do while始终会尽同一涂鸦循环体