方法printDetails如果airCon字段airCon为true,则打印出yes,但我认为这不是完美的方式,所以还有其他方法吗?
public class Auto
{
private boolean airCon;
public Auto() {}
public void setAirCon(boolean airCon) {
this.airCon = airCon;
}
public void printDetails() {
String con;
if(airCon) {
con = "Yes";
} else {
con = "No";
}
System.out.println(con);
}
}
答案 0 :(得分:4)
尝试三元:
System.out.println(aircon ? "Yes" : "No");
三元表达式非常适合根据条件将某个值分配给一个值或另一个值,所有这些都在一行中。你也可以嵌套它们:
bool isConditionTrue, areYouSure;
string answer = isConditionTrue ? areYouSure ? "Yes" : "No" : "No";
使用括号更容易阅读:
string answer = isConditionTrue ? (areYouSure ? "Yes" : "No") : "No";
所以只有 isConditionTrue 布尔值为真时才会读取 areYouSure 布尔值。
答案 1 :(得分:3)
另一种方法是使用三元运算符:
String con = airCon ? "yes" : "no";
效果相同,代码少。
P.S。如果您需要做的就是打印它,您当然可以将整个表达式移动到println()
。
答案 2 :(得分:3)
这是一个非常好的方法,如果你想保存线条虽然你可以使用三元语句
System.out.println(aircon ? "Yes" : "No");
答案 3 :(得分:2)
这似乎完全没问题。代码有点长,但这不一定是坏事。
您可以使用方便的Java技巧来简化它:
public void printDetails()
{
System.out.println(airCon ? "Yes" : "No");
}
答案 4 :(得分:0)
使用三元运算符。
String con=airCon?"yes":"no"
答案 5 :(得分:0)
你说得对。虽然你的代码有点冗长,但最好还是按照你的理解去做。您可以使用条件语句:
System.out.println((airCon) ? "Yes": "No")
这也是一样的。
但是,我会定义一个实用程序方法,以防您想在应用程序的其他区域使用它。
public static String getYesNo(boolean input) {
return ((input) ? "Yes": "No");
}
这里最好将“是”和“否”字符串设为public static final,这样它们就可以作为常量。
答案 6 :(得分:0)
或者您可以使用此功能,为您节省其他费用:
public void printDetails()
{
String con = "No";
if(airCon)
{
con = "Yes";
}
System.out.println(con);
}