设为首页 加入收藏

TOP

3.1.5 条件运算符
2013-10-07 16:06:05 来源: 作者: 【 】 浏览:69
Tags:3.1.5 条件 运算

3.1.5  条件运算符

条件运算符有时称作三元运算符,因为它牵涉3个操作数。通过示例来理解该运算符应该是最好的办法。假设有两个变量a和b,我们希望将a和b中的最大值赋给第三个变量c。可以用下面的语句来实现:

  1. c = a > b   a : b;                // Set c to the maximum of a or b 

条件运算符的第一个操作数必须是结果为bool值true或false的表达式,本例中的表达式是a > b。如果该表达式返回true,则第二个操作数(本例中是a)被选为结果值。如果第一个参数返回false,则第三个操作数(本例中是b)被选为结果值。因此,如果a大于b,则条件表达式a > b a : b的结果是a;否则是b。作为赋值操作的结果,该数值存储在c中。该赋值语句中使用条件运算符等价于下面的if语句:

  1. if(a > b)  
  2. c = a;  
  3. else  
  4. c = b

条件运算符通常可以写成下面的形式:

  1. condition   expression1 : expression2 

如果condition为true,则结果是expression1的值;如果condition为false,则结果是expression2的值。

试一试:在输出中使用条件运算符

条件运算符的常见用途是根据表达式的结果或变量的值来控制输出。可以根据指定的条件,通过选择文本字符串来改变输出的消息。

  1. // Ex3_04.cpp  
  2. // The conditional operator selecting output  
  3. #include <iostream> 
  4. using std::cout;  
  5. using std::endl;  
  6. int main()  
  7. {  
  8. int nCakes(1);                                                  // Count of number of cakes  
  9. cout << endl 
  10. << "We have " << nCakes << " cake" << ((nCakes > 1)   "s." : ".")  
  11. << endl;  
  12. ++nCakes;  
  13. cout << endl 
  14. << "We have " << nCakes << " cake" << ((nCakes > 1)   "s." : ".")  
  15. << endl;  
  16. return 0;  
  17. }  

该程序的输出如下:

  1. We have 1 cake.  
  2. We have 2 cakes. 

示例说明

首先用数值1初始化变量nCakes,然后是一条显示蛋糕数量的输出语句。使用条件运算符只是想测试一下变量nCakes,以确定是有一块还是多块蛋糕:

  1. ((nCakes>1)   "s." : ".") 

如果nCakes大于1,则该表达式为"s.";否则为"."。该表达式能够为任意数量的蛋糕使用同一条输出语句,并得到语法上正确的输出。为证实这一点,在示例中使变量nCakes递增,然后重复执行相同的输出语句。

还有许多其他可以应用这类机制的情况,例如,在"is"和"are"之间进行选择。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.1.4 逻辑运算符和表达式(2) 下一篇3.1.6 switch语句(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)