2

メソッド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);    
    }
}
4

7 に答える 7

4

三項を試してください:

System.out.println(aircon ? "Yes" : "No");

三項式は、条件に基づいていずれかの値に何かを 1 行で割り当てるのに最適です。それらをネストすることもできます:

bool isConditionTrue, areYouSure;
string answer = isConditionTrue ? areYouSure ? "Yes" : "No" : "No";

かっこを使用すると、少し読みやすくなります。

string answer =  isConditionTrue ? (areYouSure ? "Yes" : "No") : "No";

したがって、isConditionTrueブール値が true の場合にのみ、areYouSure ブー​​ル値が読み取られます

于 2013-03-20T17:57:44.007 に答える
3

別の方法は、三項演算子を使用することです。

String con = airCon ? "yes" : "no";

同じ効果、少ないコード。

PSもちろん、println()印刷するだけで式全体をifに移動できます。

于 2013-03-20T17:56:57.403 に答える
3

三項ステートメントを使用できますが、行を保存したい場合は、これは完全に優れた方法です。

System.out.println(aircon ? "Yes" : "No");
于 2013-03-20T17:57:05.163 に答える
2

これは完全に問題ないようです。コードは少し長いですが、それは必ずしも悪いことではありません。

便利なJavaトリックを使用して、それを大幅に簡素化できます。

public void printDetails()
{
    System.out.println(airCon ? "Yes" : "No");
}
于 2013-03-20T17:57:10.840 に答える
0

あなたはそれが正しいです。あなたのコードは少し冗長ですが、理解した内容で進めるのが最善です。条件ステートメントを使用できます。

System.out.println((airCon) ? "Yes": "No")

これは同じことを行います。

ただし、アプリの他の領域で使用する場合に備えて、ユーティリティ メソッドを定義します。

public static String getYesNo(boolean input) {
   return ((input) ? "Yes": "No");
}

ここでは、"Yes" と "No" の文字列を public static final にして、定数として機能させる方がよいでしょう。

于 2013-03-20T18:03:01.893 に答える
0

三項演算子を使用します。

String con=airCon?"yes":"no"
于 2013-03-20T17:58:51.250 に答える
0

または、これを使用できます。else を保存します。

public void printDetails()
{
String con = "No";
if(airCon)
{
    con = "Yes";
}
System.out.println(con);

}
于 2013-03-20T18:04:14.297 に答える