Wyrażenie warunkowe to pewien specyficzny operator – operator trójargumentowy. Pierwszym argumentem tego operatora jest wartość logiczna. Dwa pozostałe argumenty mogą mieć dowolny typ, byleby to był ten sam (zgodny) typ.
Wartość wyrażenia warunkowego zależna jest od wartości pierwszego argumentu, tj. argumentu typu logicznego. Jeśli argument ten ma wartość true to wartością wyrażenia jest argument drugi; jeśli false to trzeci. Składnia wyrażenia warunkowego jest następująca:
{warunek} ? {wartość pierwsza} : {wartość druga}
Jeśli zatem {warunek} wylicza się do wartości true to wartością całego wyrażenia jest {wartość pierwsza} a jeśli false to {wartość druga}.
Wyrażenia warunkowego możemy użyć do zastąpienia prostych instrukcji warunkowych IF. Przykładowo, funkcję która bada parzystość liczby przekazanej jako argument wywołania możemy zaimplementować z użyciem instrukcji IF w sposób następujący:
public String isEven(int x) { if(x % 2 == 0) return "parzysta"; else return "nieparzysta"; }
a z użyciem wyrażenia warunkowego tak:
public String isEven(int x) { return x % 2 == 0 ? "parzysta" : "nieparzysta"; }