-2

我有两种不同的类型,它们的代码相同,结果相同。

第一个是

public String gender(int num){
    if (num==0){
        return "Female";
    } else{               
        return "Male";
    }
}

第二个是

public String gender(int num){
    return num == 0 ? "Female" : "Male" ;
}

你能告诉我这两种线型有什么不同吗?(当然不是代码长度。)我的一个朋友告诉我,第二个代码模式在 java 中称为一元代码或类似的东西。我觉得这种方式非常有效。所以我想了解一下。请帮我。

4

4 回答 4

5

它被称为三元运算符

return  num == 0 ? "Female" : "Male";

意思相同

if (num==0){ 
  return "Female"; 
}else{
  return "Male"; 
}
于 2013-10-30T05:46:27.920 回答
2

ternary operator和等于if-else

 result = someCondition ? value1 : value2;

因此,根据条件,结果变量会获得一个值。

那是 的简写形式if else

另一个条件运算符是 ?:,它可以被认为是 if-then-else 语句的简写。该运算符也称为三元运算符,因为它使用三个操作数。在以下示例中,此运算符应读作:“如果 someCondition 为真,则将 value1 的值分配给 result。否则,将 value2 的值分配给 result。”

于 2013-10-30T05:47:24.623 回答
0

该声明

 return num == 0 ? "Female" : "Male" ;
        _________     ^            ^
            ^         |            |
            |        Return this   |__ Return this if expression false
        Expression  if expression 
                       true

它返回表达式的结果 - (num == 0 ? "Female" : "Male")

它检查 num 是否等于 0。如果是,则结果是第一个参数,即“女性”,否则如果 num 不为零,则结果是第二个参数,即“男性”。

于 2013-10-30T05:47:45.530 回答
0

看看这个例子 ,它将 Integer 转换为 Double ,

使用条件运算符与使用 if 语句相比没有性能优势

使用三元为代码提供更好的可读性。您正在交易一条简明扼要地表达您想要的内容的行,而不是九行有效的混乱。

于 2013-10-30T09:08:59.947 回答