Operator warunkowy w Javie

Pamiętam, że gdy pierwszy raz zobaczyłem składnię operatora warunkowego nie za bardzo wiedziałem o co w tym chodzi. Było to jednak na samym początku nauki programowania i dość szybko zrozumiałem jego wagę w pisaniu czytelnego kodu. Dziś jest to chyba najczęściej stosowane przeze mnie uproszczenie składni w Javie.

Jedna linia zamiast kilku.

O co chodzi w operatorze warunkowym? Jest to po prostu zamienienie instrukcji warunkowej if-else do postaci trójargumentowego operatora: booleanValue ? valueIfTrue : valueIfFalse. Stąd też operator jest nazywany z ang. ternary operator, czyli potrójnym operatorem.

Oto prosty przykład użycia operatora warunkowego w kodzie:

Person person = getPerson(85032301234L);     
if (person != null) {
    return person.getName();     
} else {         
    return DEFAULT_PERSON_NAME;     
}
// Zamieniamy na:
return person != null ? person.getName() : DEFAULT_PERSON_NAME;

Jeżeli uczysz się dopiero programować, pomyśl ile razy dotychczas mogłeś użyć operatora warunkowego zamiast dodawania kolejnych if-ów. Operator zwraca zmienną, więc możesz go użyć nie tylko do przypisania nowej zmiennej, ale gdy zwracamy Boolean możemy jej użyć jako warunek instrukcji warunkowej. Spójrz na przykład poniżej:

if (allSkills ? person.getSkills().size() == skills.size() : person.getSkills().size() > 0) {
    filteredPersons.add(person);     
}

// Możliwa wersja bez operatora warunkowego 
if ((allSkils && person.getSkills().size() == skills.size()) 
    || (!allSkills && person.getSkills().size() > 0)) {
        filteredPersons.add(person);
}

W tym przypadku warunek jest inny w zależności od wartości flagi allSkills. Jak widać operator warunkowy pozwala uprościć trochę kod i tym samym programować szybciej.

Operator warunkowy w Javie

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Przewiń do góry