美文网首页
判断选择

判断选择

作者: 晓晓桑 | 来源:发表于2020-04-10 14:42 被阅读0次

    if

    if(1),if(0)

    int main(void) {
        int a = 1;
        if (a == 1) {
            printf("qw");
        }
        return 0;
    }
    //结果是qw
    
    int main(void) {
        int a = 1;
    //逗号的优先级低
        if (a == 1, 0) {
            printf("qw");
        } else {
            printf("er");
        }
        return 0;
    }
    //结果
    er
    
    int main(void) {
        int a = 1;
    
        if (a == 2) {
            printf("a==2\n");
        } else {
            printf("qqqqq\n");
        }
        if (a = 2) {
    
            printf("a=2\n");
        } else {
            printf("wwwww\n");
        }
        return 0;
    }
    

    答案

    qqqqq
    a=2
    

    注意:java里只用一个=就可以,而c的=和==来区别赋值和判断

    t条件运算符 :?

    条件运算符是c语言中ifelse的简写形式,C中唯一一个三元运算符
    形式:条件?真:假

    int main(void) {
    
        int a = 65;
        a > 60 ? printf("及格") : printf("不及格");
        return 0;
    }
    

    多个条件运算符嵌套

    int main(void) {
    
        int a = 59;//59结果是哈哈, 61结果是及格
        a > 60 ? printf("及格") :a > 20 ? printf("哈哈") : printf("嘿嘿");
        return 0;
    }
    

    重复录入学生的成绩,打出成绩评级,输入-1退出系统,输入非法数据提示重新输入,并重新输入,提示欢迎使用。

    int main(void) {
        printf("欢迎,请输入成绩\n");
        while (1) {
            int score;
            scanf("%d", &score);
            if (score == -1) {
                break;
            }
            if (score > 100 || score < 0) {
                printf("请重新输入\n");
                continue;
            }
            if (score < 60) {
                printf("不及格\n");
    
            } else {
                printf("及格\n");
            }
        }
        printf("感谢使用\n");
        return 0;
    }
    
    

    系统保证能连续通的话,就用while(1)死循环,就像android 的thread mian函数里面就是while()死循。

    switch

    switch按顺序扫描标签,发现标签中有匹配的,执行语句,break跳出语句,如果都没有匹配的,就进入default,执行语句,break跳出。
    switch 标签值不能一样


    image.png
    int main(void) {
        int a;
        scanf("%d", &a);
        switch (a) {
            case 1: //case的值不能重复
                printf("%D", a);
                break;
            case 2:
                printf("%D", a);
                break;
            case 3:
                printf("%D", a);
                break;
            case 4:
                printf("%D", a);
                break;
            case 5:
                printf("%D", a);
                break;
            default: 
                printf("hhhhh");
                break;
        }
        printf("感谢使用\n");
        return 0;
    }
    
    注意事项
    • case 空格 标签:
    • 必须要有break。没有break的话,语句会从匹配的标签开始,执行printf语句,一直执行到default里面的语句。
    • 有一个循环,循环内有switch,switch有break,这个break只跳出switch,不跳出循环。
    • case的标签要是整型常量表达式。
    • switch里面的条件整形表达式:浮点型不行。
    • default 可以不写哦,不写就没有默认处理。
    • 标签不能重复。
    image.png

    goto

    找到goto标签的地方,从那里开始顺序执行语句。

    int main(void) {
        adcd:
        printf("哈哈哈\n"); //循环打印哈哈哈哈
        goto adcd;// 
        return 0;
    }
    
    int main(void) {
    
        goto adcd;//
        printf("哈哈哈\n"); //不执行哈哈哈了
        adcd:
        printf("呵呵\n"); // 执行一遍呵呵
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:判断选择

          本文链接:https://www.haomeiwen.com/subject/udxaphtx.html