2.18 条件运算符

条件运算符唯一的一个三元运算符,需要三个值才能运算。
结果的类型可以是整数、小数、字符、字符串等。格式为:
c = 布尔表达式 ? 表达式A:表达式B;
布尔表达式是true,则整个运算返回表达式A的值,c的值就是表达式A的值;否则(也就是布尔表达式是false),返回表达式B的值,c的值就是表达式B的值。
例如:
c= a>0 ? a :-a
布尔表达式:a > 0
表达式A:a
表达式B:-a
那么c的计算结果是:a大于0的时候就是a的值,a小于0的时候是-a的值。
实际上这个条件运算符使得c就是a的绝对值。

练习题

  • 已知a的值是20,b的值是10,计算下面的c值
    1.已知a的值是20,b的值是10 (2分) [填空]
    c= a > b ? a – b : b - a
    c的值是:        
    2.c=a% 6 == 0 ? a : a%6 (2分) [填空]
    c的值是:        
    3.c= a > b ? a : b; (2分) [填空]
    c的值是:        
  • 练习题
    1.实际上上题中,c的值是a和b之间较大的那个数 (2分) [填空]
    仿照上面,写出:c是a、b之间较小的那个数(字符之间不要留空格)
    c=        ?b:a
    2.c是a和b的差的绝对值 (2分) [填空(编程批改)]
            :b-a
    3.另外,还可以发生嵌套: (2分) [填空]
    d=a>b ? (a>c?a: c) : (b>c?b:c);
    你可以这样分析:
    (1)a>c?a:c代表a和c之间较大的那个数
    (2)b>c?b:c代表b和c之间较大的那个数
    a>b成立,则表示a比较大,那么a和c之间较大的那个数就是最大值
    a>b不成立,则b比较大,那么b和c之间较大的那个数就是最大值

    假设a=20,b=50,c=40
    d=a>b ? (a>c?a: c) : (b>c?b:c);
    d的值是