3 回答
TA贡献217条经验 获得超353个赞
三目运算符,可代替if(){}else{}
因写起来比较方便(一行代码就搞定了),常用来赋值时判断用。
例:
int a;
//……
if(a<0){
a = 0;
}else{
a = a;//当然了,这句话写不写其实都一样,只是为了更好的理解三目运算符的变形形式
}
//使用a的值之前,a的值肯定不会是负数
==============使用三目运算符的代替方案=========
int a;
//.......
a = ( a<0 ? 0 : a ) ;//圆括号可以省略
TA贡献217条经验 获得超353个赞
a > b ? (max = a, min = b) : (max = b, min = a); max > c ? (min > c ? min = c : 1) : max = c;
改if形式如下
int x ;//设置a>b三目运算结果表达式的值x
if ( a>b ){
max = a;
min = b;
x = min;//最后一个式子的值,即min的值
}else {
max = b;
min = a;
x = min;
}
//表达式的值最终是x,但是上面的例子,并没有赋值,所以结果x没用上
//由于有分号,所以是另一个三目了,和之前无关了。
int y;//再设置一个三目max > c运算结果值变量
if( max > c){
int z;//设置三目min运算变量
if ( min > c ){
min = c ;
z = min;
}else {
z = 1 ;
}
y = z;
}else{
max = c;
y = max;
}
TA贡献4条经验 获得超1个赞
三元i f- e l s e 运算符
布尔表达式 ? 值0:值1
若“布尔表达式”的结果为true,就计算“值0”,若“布尔表达式”的结果为false,计算的就是“值1”,
而且它的结果成为最终由运算符产生的值。
当然,也可以换用普通的if-else 语句,但三元运算符更加简洁。尽
符与if-else 明确区别开。下面便是一个例子:
static int ternary(int i) {
return i < 10 ? i * 100 : i * 10;
}
可以看出,假设用普通的if-else 结构写上述代码,代码量会比上面多出许多。如下所示:
static int alternative(int i) {
if (i < 10)
return i * 100;
return i * 10;
}
第二种形式更易理解,
- 3 回答
- 0 关注
- 10866 浏览
添加回答
举报