黑马程序员技术交流社区

标题: C#中 三元表达式 [打印本页]

作者: jackwyang    时间: 2013-3-4 10:51
标题: C#中 三元表达式
三元表达式比较特殊,由三个操作数组成,形式为:[表达式1] ? [表达式2] : [表达式3],其中:

表达式1为一个逻辑表达式;
如果表达式1的值为真(!=0),则整个表达式为表达式2的值,否则为表达式3的值;


参见如下范例:



[cpp] view plaincopyprint?#include <stdlib.h>   
   
// 使用三元运算符计算绝对值   
#define ABS(x) ((x) > 0 ? (x) : (x) * -1)   
   
// 使用三元运算符计算最小值   
#define MIN(a, b) ((a) < (b) ? (a) : (b))   
   
// 使用三元运算符计算最大值   
#define MAX1(a, b) ((a) > (b) ? (a) : (b))   
   
// 不使用三元运算符计算最大值   
#define MAX2(a, b) (((a) + (b) + ABS((a) - (b))) / 2)   
   
int main(int argc, char* argv[])  
{  
    int a = -10, b = 10;  
   
    printf("|a| = %d/n", ABS(a));  
    printf("min = %d/n", MIN(a, b));  
    printf("max = %d/n", MAX1(a, b));  
    printf("max = %d/n", MAX2(a, b));  
      
    system("pause");  
    return 0;  


作者: 许庭洲    时间: 2013-3-4 21:09
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2