02分支结构

来源:互联网 发布:ubuntu 设置开机脚本 编辑:程序博客网 时间:2024/05/17 03:15

/// BOOL数据类型

    

     *  BOOL表示的是一种非真即假的数据类型

     *  BOOL类型的变量只有YESNO两个值

     *  YES表示真,NO表示假

     *  C语言中,非0即是真

     

    BOOL b1 = true;

    BOOL b2 = YES;

    

    // BOOL类型的变量,在我们的分支语句和循环语句中是很常用的

    

    

    

    /// 关系运算符

    

     *  <   : 小于

     *  >   : 大于

     *  ==  : 等于(注意:是两个等号)

     *  !=  : 不等于

     *  <=  : 小于等于

     *  >=  : 大于等于

     *  主要用于比较运算,结果只能有真假两种情况,结果使用BOOL类型存储

     

    int a1 = 5;

    int a2 = 10;

    BOOL b3 = a1 > a2;

    BOOL b4 = a1 == a2;

    BOOL b5 = a1 <= a2;

    


    

    /// 逻辑运算符

    

     *  && : 逻辑与 : 条件一与条件二同时成立才算成立

     *  || : 逻辑或 : 条件一与条件二只要有一个成立即是成立

     *  !  : 逻辑非 : 将表达式的结果取反

     *

     *  注意:逻辑与(&&)和逻辑或(||)存在短路现象

     

    BOOL b6 = (3 > 5) && (5 > 8);

    BOOL b7 = (1 < 5) || (3 < 4);

    BOOL b8 = !(1 < 9);

    

    

    

    

    /// 程序的三种结构

    

     *  1. 顺序结构:顺序执行语句,从上到下,从左到右

     *  2. 分支结构:通过进行某一个判断执行不同的语句

     *  3. 循环结构:在满足某一个条件的时候,反复执行一个语句序列

     

    

    

    

    /// if语句

    // 用if语句可以构成分支结构,它根据给的条件进行判定,以决定某个分支程序段

    // C语言中的if语句共有3种形式

    int a3 = 1;

    int a4 = 5;

    // 最简单的if语句

    if (a3 > a4) {

        printf("a3 > a4");

    }

    // else的语句

    if (a3 > a4) {

        printf("a3 > a4");

    } else {

        printf("a3 <= a4");

    }

    // 多个if else的语句

    if (a3 > a4) {

        printf("a3 > a4");

    } else if (a3 == a4) {

        printf("a3 == a4");

    } else if (a3 < a4) {

        printf("a3 < a4");

    }

    

     *  注意:if语句中是不带分号的。

     

    

    // 练习1

    // 1. 从控制器输入一个字符,如果是m,则输出男性,否则什么都不输出

    // 2. 从控制器输入一个字符,如果是m,则输出男性,否则输出女性

    char c;

//    scanf("%c", &c);

    if (c == 'm') {

        printf("男性");

    } else {

        printf("女性");

    }

    // 练习2:判断时候是闰年

    int year = 0;

//    scanf("%d", &year);

    if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)) ) {

        printf("%d年是闰年", year);

    } else {

        printf("%d年不是闰年", year);

    }

    // 练习3:判断输入的是数字、小写字母、小写字母

    char c1;

    scanf("%c", &c1);

    if (c1 >= 'a' && c1 <= 'z') {

        printf("%c是小写字母", c1);

    } else if (c1 >= 'A' && c1 <= 'Z') {

        printf("%c是大写字母", c1);

    } else if (c1 >= '0' && c1 <= '9') {

        printf("%c是数字", c1);

    }

    

    // 条件运算符

    // 求两个数的最大值

    int a5 = 100, a6 = 200, temp = 0;

    if (a5 > a6) {

        temp = a5;

    } else {

        temp = a6;

    }

    // 条件运算符的使用:表达式 ? "选择1" : "选择2"

    temp = a5 > a6 ? a5 : a6;

    

    

    

    

    

    /// 枚举类型

    

     *  1. 一组有符号名称的整形变量

     *  2. 枚举属于构造类型

     *  3. enum 枚举名 {枚举值表};

     *  4. 提高程序可读性

     *  5. 将人能看懂的标示符和计算机识别的数字建立对应关系

     

    // 创建一个四个季节的枚举

    enum season {

        spring, // 值为0

        summer,

        autumn,

        winter

    };

    // 创建枚举类型变量

    enum season s1 = spring;

    // s的类型是 enum season 太麻烦,所以我们来给enum season 起个别名

    typedef enum season Season;

    Season s2 = summer;

    // 或者

    typedef enum {

        spring1,

        summer2,

        autumn1,

        winter1

    } Season1;

    Season1 s3 = winter1;

    

    

    /// switch语句

    

    

     *  多分支语句,通过判断整形表达式的值,来决定执行哪个分支

     *  switch通常与case配合使用

     

    // switch语法

    int s = 0;

    switch (s) {

        case 0: {

            printf("s == 0");

            break;

        }

        case 1: {

            printf("s == 1");

            break;

        }

        case 2: {

            printf("s == 2");

            break;

        }

        case 3: {

            printf("s == 3");

            break;

        }

        default:

            printf("s == 其他");

            break;

    }

    // 我们也会使用枚举和switc搭配来使用

    Season1 season = autumn1;

    switch (season) {

        case spring1: {

            printf("春天");

            break;

        }

        case summer2: {

            printf("夏天");

            break;

        }

        case autumn1: {

            printf("秋天");

            break;

        }

        case winter1: {

            printf("冬天");

            break;

        }

        default: {

            printf("其它");

            break;

        }

    }

    

     *  break 是什么?

     *  break 用于跳出case,继续执行switch后面的代码

     

    

    

    

    // 练习4:从控制台输入1--4,打印出春夏秋冬的英文

    int seasonInt = 0;

    scanf("%d", &seasonInt);

    switch (seasonInt) {

        case 0: {

            printf("spring");

            break;

        }

        case 1: {

            printf("summer");

            break;

        }

        case 2: {

            printf("autumn");

            break;

        }

        case 3: {

            printf("winter");

            break;

        }

        default: {

            printf("Others");

            break;

        }

    }


0 0
原创粉丝点击