Operator trójargumentowy
condition ? a : b
Operator trójargumentowy to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.
Czym jest operator trójargumentowy
Operator trójargumentowy jest jedynym operatorem w Javie, który przyjmuje trzy operandy. Umożliwia zwięzły wybór jednej z dwóch wartości na podstawie warunku.
Jego składnia ma postać: condition ? valueIfTrue : valueIfFalse.
Operator ten zwraca wartość, więc można ją przypisać lub przekazać bezpośrednio.
int age = 20;
String status = age >= 18 ? "adult" : "minor";Trzy części
Pierwszą częścią jest logiczny warunek. Znak ? oddziela go od wyników.
Jeśli warunek jest prawdziwy, wyrażenie przyjmuje wartość części przed :. Jeśli jest fałszywy, przyjmuje wartość części za :.
W rzeczywistości obliczana jest tylko jedna z dwóch gałęzi.
int score = 45;
String result = score >= 50 ? "pass" : "fail";Pełny działający przykład
Oto kompletny program, który wyświetla etykietę na podstawie liczby.
Warunek n % 2 == 0 decyduje, czy zostanie użyta wartość "even", czy "odd".
public class Main {
public static void main(String[] args) {
int n = 7;
String parity = n % 2 == 0 ? "even" : "odd";
System.out.println(parity);
}
}To jest wyrażenie
W przeciwieństwie do instrukcji if operator trójargumentowy jest wyrażeniem, czyli ma wartość.
Oznacza to, że można go używać wewnątrz wywołań metod, instrukcji return i przypisań, tam gdzie instrukcja nie pasowałaby składniowo.
public class Main {
public static void main(String[] args) {
int a = 9, b = 4;
System.out.println("Max is " + (a > b ? a : b));
}
}Wybieranie liczb
Obie gałęzie nie muszą zwracać napisów. W tym przykładzie operator trójargumentowy wybiera większą z dwóch wartości typu int.
Wynikiem jest wartość typu int, którą można zapisać i ponownie wykorzystać.
public class Main {
public static void main(String[] args) {
int x = 12, y = 30;
int max = x > y ? x : y;
System.out.println(max);
}
}Obie gałęzie muszą mieć zgodne typy
Java musi znać typ całego wyrażenia, dlatego typy obu gałęzi muszą być zgodne.
Jeśli jedna gałąź ma typ int, a druga String, kod się nie skompiluje.
Obie strony powinny zwracać wartości tego samego rodzaju.
boolean ok = true;
// valid: both ints
int code = ok ? 200 : 404;
// invalid: int vs String would not compileZwracanie z metody
Operator trójargumentowy świetnie sprawdza się wewnątrz instrukcji return, zastępując czterowierszową instrukcję if/else jednym wierszem.
Poniższa metoda zwraca wartość bezwzględną liczby.
public class Main {
static int abs(int n) {
return n < 0 ? -n : n;
}
public static void main(String[] args) {
System.out.println(abs(-8));
}
}Użycie w danych wyjściowych
Operator trójargumentowy można umieścić bezpośrednio w wywołaniu funkcji wyświetlającej.
Podczas konkatenacji należy ująć go w nawiasy, aby znaki ? i : zostały zgrupowane przed połączeniem tekstu za pomocą +.
public class Main {
public static void main(String[] args) {
int items = 0;
System.out.println("Cart: " + (items == 0 ? "empty" : "has items"));
}
}Wybieranie powitania
Częstym zastosowaniem jest wybór jednego z dwóch komunikatów.
Warunek sprawdza flagę logiczną, a operator trójargumentowy wybiera odpowiedni tekst powitania.
public class Main {
public static void main(String[] args) {
boolean morning = true;
String greet = morning ? "Good morning" : "Hello";
System.out.println(greet);
}
}Priorytet operatorów
Operator trójargumentowy ma bardzo niski priorytet, dlatego działania arytmetyczne i porównania znajdujące się w jego obrębie są wykonywane wcześniej.
W wyrażeniu a + b > 10 ? "big" : "small" Java oblicza a + b, porównuje wynik, a następnie wybiera gałąź.
Podczas łączenia napisów za pomocą + należy dodawać nawiasy.
int a = 6, b = 7;
String size = a + b > 10 ? "big" : "small";Przypisywanie na podstawie danych wejściowych
Operator trójargumentowy świetnie nadaje się do zainicjalizowania zmiennej w jednym kroku.
W tym przykładzie opłata jest ustawiana na zero dla członków, a w przeciwnym razie na stałą kwotę.
public class Main {
public static void main(String[] args) {
boolean isMember = false;
double fee = isMember ? 0.0 : 9.99;
System.out.println(fee);
}
}Szybki test
Sprawdź swoją znajomość składni operatora trójargumentowego.
Podsumowanie
Operator trójargumentowy condition ? a : b jest zwięzłym, trzyczęściowym warunkowym wyrażeniem w Javie.
Zwraca wartość, oblicza tylko jedną gałąź i wymaga zgodnych typów po obu stronach.
Należy używać go do przypisywania, zwracania lub wyświetlania jednej z dwóch wartości w przejrzysty sposób.
Często zadawane pytania
Czy lekcja „Operator trójargumentowy” jest bezpłatna?
Tak — pełny tekst „Operator trójargumentowy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Operator trójargumentowy”?
condition ? a : b Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Operator trójargumentowy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Operator trójargumentowy
- Zagnieżdżanie operatorów trójargumentowych
- Operator trójargumentowy a if/else
- Pułapki związane z czytelnością