• C 流程控制


    流程控制

    顺序结构: 默认的流程结构 按照书写顺序执行每一条语句

    选择结构: 对给定的条件进行判断 再根据判断结果来决定执行哪一段代码

    循环结构: 在给定条件成立的情况下 反复执行某一段代码

     

    选择结构

    1. if

    #include <stdio.h>
    
    int main() {
        /*
         1> if的第一种结构
         if(条件) {
            语句1;
            语句2;
            ...
         }
         条件成立 {}里面的代码才会执行
         */
        int money = 6000;
        if(money >= 5000) {
        
            printf("大保健
    ");
        }
        
        /*
         2> if的第二种结构
         if(条件) {
            语句1;
            语句2;
            ...
         }else {
            语句1;
            语句2;
            ...
         }
         不是第一个{}里面的代码被执行 就是第二个{}里面的代码被执行
         */
        if(money >= 5000) {
            
            printf("大保健
    ");
        }else {
        
            printf("好好上班
    ");
        }
        
        /*
         3> if的第三种结构
         if(条件1) {
            语句1;
            ...
         }else if(条件2) {
            语句1;
            ...
         }else if(条件3) {
            语句1;
            ...
         }else {
            语句1;
            ...
         }
         只有一个{}里面的代码被执行 条件判断顺序从上到下
         */
        if(money == 5000) {
            
            printf("大保健
    ");
        }else if(money == 4000) {
            
            printf("好好上班
    ");
        }else if(money == 3000) {
        
            printf("回家种田
    ");
        }else {
         
            printf("唉!!!
    ");
        }
        
        /*
         4> if的第四种结构
         if(条件)
            语句1;
            
         语句2;
         ...
         
         这种情况比较特殊 条件是否成立只会影响语句1;
         之后的语句2... 都和条件无关
         想要都影响 就用{}括起来
         这种写法要注意: 如果要在if后面的语句中定义新的变量 必须用{}包住
         */
    
        return 0;
    }

    2. switch

    #include <stdio.h>
    
    int main() {
        
        int a = 10;
        switch(a) {
            case 0:
                printf("这是一个0");
                break;
            case 5:
                printf("这是一个5");
                break;
            case 10:
                printf("这是一个10");
                break;
            default:
                printf("什么也不是");
                break;
        }
    
        return 0;
        
        //break: 退出switch语句
        //default: 当前面的case都不匹配的时候就会执行
        //注意: 如果case后面没有break 就会执行后面所有case中的语句 直到遇到break为止
        //注意: 如果要在case后面定义新的变量 必须用{}包住
    }

    3. ifswitch的对比

    1> if语句能完成的功能 switch不一定能完成

    2> switch语句能完成的功能 if都能完成

    3> if用得比较多 比较灵活 switch只能某个单值

     

    循环结构

    1. while

    #include <stdio.h>
    
    int main() {
        /*
         while(条件) {
         
            循环体
         }
         */
        int count = 0;
        while(count < 30) {
            ++count;
            
            if(count%10 == 0) {
                continue;
            }
            printf("hello world! 第%d次
    ", count);
            
            if(count == 28) {
                break;
            }
        }
        
        return 0;
        
        //continue: 跳出本次循环 进入下一次循环
        //break: 退出整个循环
        //特点: 只有条件成立才会执行循环体
        //注意: 死循环 while(3) { printf("死循环
    "); }
    }

    2. do while

    #include <stdio.h>
    
    int main() {
        /*
         do {
         
         } while(条件);
         */
        int i = 0;
        do {
            
            i++;
        } while(i < 8);
        printf("i = %d
    ", i);
        
        return 0;
        
        //特点: 不管条件是否成立 一定会执行一次循环体
    }

    3. for

    #include <stdio.h>
    
    int main() {
        /*
         for(语句1; 条件; 语句2) {
            循环体
         }
         
         语句1: 初始化语句
         语句2: 增量语句(执行完循环体后再执行的语句)
         
         1.for一开始就会执行一次 语句1(整个for循环只会执行一次)
         2.判断条件是否成立 如果条件成立 就会执行一次循环体 然后就会执行语句2 再次判断条件是否成立...
         */
        for(int i = 0; i < 30; printf("i = %d
    ", i), i++) {}
        
        for(int i = 0; i < 30; printf("i = %d
    ", i), printf("哈哈
    "), i++) {}
        
        for(int i = 0; i < 30; i++) {
            printf("i = %d
    ", i);
        }
        
        return 0;
        
        //注意: 不要随便在for()后面加分号
        //注意: for循环体内部变量的作用域
        //死循环 for(;;);
    }

    4. while循环和for循环的比较

    可以互换

    for循环的变量可以及时回收

     

    breakcontinue

    1. break 使用场合

    1> switch语句: 退出整个switch语句

    2> 循环结构(while|do while|for): 退出整个循环语句

    3> 循环嵌套下的break: 只对最近的循环结构有效

    2. continue 使用场合

    1> 循环结构(while|do while|for): 跳出本次循环 进入下一次循环

    2> 循环嵌套下的continue: 只对最近的循环结构有效

     

     

     

     

  • 相关阅读:
    sprint 1 的总结
    2016-11-23(第十天)
    2016-11-22(第九天)
    2016-11-20(第七天)
    2016-11-19(第六天)
    2016-11-18(第五天)
    sprint1_11.15燃尽图(第二天)
    OrderSys---Spring 计划(第一天)
    团队信息
    Scrum 4.0
  • 原文地址:https://www.cnblogs.com/huangyi-427/p/4726138.html
Copyright © 2020-2023  润新知