2013-03-20 2 views
2

метод printDetails его отпечатки да, если поле airCon airCon истинно, но я думаю, что это не идеальный способ сделать это, так есть ли другой способ сделать это?Есть ли более быстрый способ печати «да», когда значение истинно?

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);  
    } 
} 

ответ

3

Другой способ заключается в использовании тройной оператор:

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

тот же эффект, меньше кода.

P.S. Вы можете, конечно, переместить все выражение в println(), если все, что вам нужно сделать, это распечатать его.

3

Это совершенно прекрасный способ сделать это, если вы хотите сохранить строки, хотя вы можете использовать трехкомпонентное заявление

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

Это, кажется, прекрасно. Код немного длинный, но это не обязательно плохо.

Вы можете использовать удобный Java трюк, чтобы упростить это много:

public void printDetails() 
{ 
    System.out.println(airCon ? "Yes" : "No"); 
} 
4

Попробуйте трехкомпонентной:

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

Тройные выражения являются большими для назначения то ни одно значение или другой основе при условии, все в одной строке. Вы можете вложить их тоже:

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

который немного легче читать с скобкой:

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

так areYouSure булевыми получает только для чтения, если isConditionTrue булевой правда.

+0

По-видимому, я набираю слишком медленно, ха-ха – BrDaHa

0

использование тернарный оператор.

String con=airCon?"yes":"no" 
+0

это не должно быть против == AIRCON ?? –

+1

no it should be = .u может кодироваться как con = (airCon == true? "Yes": "no"); – Biswajit

+0

Мой плохой! он должен быть оператором присваивания не равным.: P –

0

У вас есть это правильно. Хотя ваш код немного подробный, лучше всего идти с тем, что вы понимаете. Вы можете использовать условное заявление:

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

Это делает то же самое.

Однако я бы определил метод утилиты, если вы хотите использовать его в других областях вашего приложения.

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

Здесь было бы лучше сделать «Да» и «Нет» струнные публичные статические финальные так они действуют как постоянные.

0

или вы могли бы использовать это, экономит вам еще:

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

} 
Смежные вопросы