if (a > b)
c = 1;
else
c = 0;
看,没有花括号的代码,感觉多紧凑。不过,对于上面的代码,我们还可以继续简化,那就是使用? : 语句。
c = (a > b)? 1 : 0;
就一行话,多简捷!语句中的问号问的是什么?问的是 a 是否大于 b ?如果是,则得到值1,否则,得到值0。
? : 表达式格式语法:
(条件) ? 值1 : 值2
举一例子:
设有int变量 a,b,二者均已初始化。请得到二者中的较大值。
方法是:
int c = (a > b) ? a :b;
是的,就这么简单,执行上面代码,c 将得到a和b中的较大值。
我们称 (a > b) ? a : b为一个表达式,而不称它为完整的一个语句(尽管它的确也可以作一个单独的语句存在)。一般地,?:表达式拿来作为等号的右值,用于通过条件判断确定一个值后,该值被赋予等号的左值。因此,并不是所有的if..else...语句都可以用: ?来代替,只有那些两个分支都只是用来计算一个同一类型的值,然后赋予同一变量的条件分支语句,才适合。