C语言-选择结构程序设计(四)-路羽博客-第1张图片

C语言-选择结构程序设计(四)

C语言-选择结构程序设计(四)-路羽博客-第2张图片

作者: 路羽

原创资源分享博客

C语言-选择结构程序设计(四)-路羽博客-第3张图片微信小程序

路羽博客 资源分享

       

C语言-选择结构程序设计(四)-路羽博客-第4张图片

条件运算符和条件表达式

如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。 
条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。 
由条件运算符组成条件表达式的一般形式为: 

表达式 1? 表达式 2: 表达式 3   

其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为条件表达式的值,否则以表达式 2 的值作为整个条件表达式的值。 
条件表达式通常用于赋值语句之中。 
例如条件语句: 

if(a > b) max = a;   
else max = b;
//可写为
max = (a > b) ? a : b;   

执行该语句的语义是:如 a>b 为真,则把 a 赋予 max,否则把 b 赋予 max

最终例如:还是求两个数最大值

    #include<stdio.h> 
    int main() {   
        int a, b, max;   
        printf("\n input two numbers: ");   
        scanf("%d%d", &a, &b);   
        printf("max=%d", a>b?a:b);   
        return 0;  
    }   

 

用switch语句实现多分支选择结构

C语言还提供了另一种用于多分支选择的 switch 语句, 其一般形式为: 

    switch(表达式){   
        case 常量表达式 1: 语句 1;  
        case 常量表达式 2: 语句 2;  
        …   
        case 常量表达式 n: 语句 n;  
        default : 语句 n+1;  
     }  

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有 case 后的语句。如表达式的值与所有 case 后的常量表达式均不相同时,则执行 default 后的语句

例如

    #include<stdio.h>
    int main() {   
        int a;   
        printf("input integer number: ");   
        scanf("%d", &a);   
        switch (a){   
            case 1: printf("Monday\n");   
            case 2: printf("Tuesday\n");   
            case 3: printf("Wednesday\n");   
            case 4: printf("Thursday\n");   
            case 5: printf("Friday\n");   
            case 6: printf("Saturday\n");   
            case 7:printf("Sunday\n");   
            default:printf("error\n");   
        }  
        return 0;  
    }   

本程序是要求输入一个数字,输出一个英文单词。但是当输入 3 之后,却执行了 case3 以及以后的所有语句,输出了 Wednesday 及以后的所有单词

C语言还提供了一种 break 语句,专用于跳出 switch 语句,break 语句只有关键字 break,没有参数。在后面还将详细介绍。修改例题的程序,在每一 case 语句之后增加 break 语句,使每一次执行之后均可跳出switch 语句,从而避免输出不应有的结果

分享到:
未经允许不得转载:

作者: 路羽, 转载或复制请以 超链接形式 并注明出处 路羽博客
原文地址: 《C语言-选择结构程序设计(四)》 发布于2022-7-27

评论

          
       
切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

路羽博客验证码