我有两种不同类型的相同代码,它们会产生相同的结果。
第一个是
public String gender(int num){
if (num==0){
return "Female";
} else{
return "Male";
}
}
第二个是
public String gender(int num){
return num == 0 ? "Female" : "Male" ;
}
你能告诉我这两种绳索图案有什么不同吗? (当然不是代码长度。)我的一位朋友告诉我,第二个代码模式在java中被称为一元代码或类似的东西。我觉得这种方式非常有效。所以我想了解这一点。请帮我。
答案 0 :(得分:5)
其名为ternary运算符
return num == 0 ? "Female" : "Male";
与
相同if (num==0){
return "Female";
}else{
return "Male";
}
答案 1 :(得分:2)
它是ternary operator
并且等于if-else
result = someCondition ? value1 : value2;
因此根据条件,结果变量得到一个值。
这是if else
的简写形式。
另一个条件运算符是?:,它可以被认为是if-then-else语句的简写。此运算符也称为三元运算符,因为它使用三个操作数。在下面的示例中,此运算符应读作:“如果someCondition为true,则将value1的值赋给result。否则,将value2的值赋给result。”
答案 2 :(得分:0)
声明
return num == 0 ? "Female" : "Male" ;
_________ ^ ^
^ | |
| Return this |__ Return this if expression false
Expression if expression
true
它返回表达式的结果 - (num == 0?“Female”:“Male”)
检查num是否等于0。如果是,则结果是第一个参数,即“女性”,否则第二个参数,即“男性”,如果num不为零。
答案 3 :(得分:0)
Have a look at this Example,它将Integer转换为Double,
使用条件运算符与使用if语句
没有性能优势使用ternary为代码提供了更好的可读性。你正在交易一行,它简明扼要地表达你想要的九行有效混乱。