Operator warunkowy jest również znany jako a operator trójskładnikowy . Instrukcje warunkowe to instrukcje podejmujące decyzje, które zależą od wyniku wyrażenia. Jest reprezentowany przez dwa symbole, tj. „?” I ':'.
Ponieważ operator warunkowy działa na trzech operandach, dlatego jest również znany jako operator trójskładnikowy.
Zachowanie operatora warunkowego jest podobne do „ Jeśli inaczej Instrukcja ' jako instrukcja 'if-else' jest również instrukcją podejmowania decyzji.
Składnia operatora warunkowego
Expression1? expression2: expression3;
Graficzne przedstawienie powyższej składni pokazano poniżej:
Znaczenie powyższej składni.
- W powyższej składni wyrażenie1 jest warunkiem logicznym, który może mieć wartość prawdziwą lub fałszywą.
- Jeśli wyrażenie1 da wartość prawdziwą, wówczas zostanie wykonane wyrażenie2.
- Mówi się, że wyrażenie2 jest prawdziwe tylko wtedy, gdy zwraca wartość różną od zera.
- Jeśli wyrażenie1 zwróci wartość fałszywą, wówczas zostanie wykonane wyrażenie3.
- Mówi się, że wyrażenie 3 jest fałszywe tylko wtedy, gdy zwraca wartość zerową.
Przyjrzyjmy się operatorowi trójskładnikowemu lub warunkowemu na przykładzie.
#include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; }
W powyższym kodzie wprowadzamy dane jako „wiek” użytkownika. Po pobraniu danych wejściowych zastosowaliśmy warunek za pomocą operatora warunkowego. W tym stanie sprawdzamy wiek użytkownika. Jeżeli wiek użytkownika jest większy lub równy 18, to zostanie wykonana instrukcja1, czyli (printf('kwalifikuje się do głosowania')) w przeciwnym wypadku wykonana zostanie instrukcja2, czyli (printf('nie kwalifikuje się do głosowania') ).
Przyjrzyjmy się wynikowi powyższego programu.
Jeśli podamy wiek użytkownika poniżej 18 lat, wynikiem będzie:
Jeśli podamy wiek użytkownika powyżej 18 lat, wynikiem będzie:
Jak możemy zaobserwować na podstawie powyższych dwóch wyników, jeśli warunek jest prawdziwy, wówczas wykonywana jest instrukcja1; w przeciwnym razie zostanie wykonana instrukcja2.
Do tej pory zaobserwowaliśmy, że operator warunkowy sprawdza warunek i na jego podstawie wykonuje instrukcje. Teraz zobaczymy, jak operator warunkowy jest używany do przypisania wartości do zmiennej.
dlaczego ciąg niezmienny w Javie
Rozumiemy ten scenariusz na przykładzie.
#include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; }
W powyższym kodzie zadeklarowaliśmy dwie zmienne, tj. „a” i „b”, a zmiennej „a” przypisaliśmy wartość 5. Po deklaracji przypisujemy wartość zmiennej „b” za pomocą operatora warunkowego. Jeśli wartość „a” jest równa 5, wówczas „b” ma przypisaną wartość 3, w przeciwnym razie 2.
Wyjście
Powyższe dane wyjściowe pokazują, że wartość zmiennej „b” wynosi 3, ponieważ wartość zmiennej „a” jest równa 5.
Jak wiemy, zachowanie operatora warunkowego i „jeśli-else” jest podobne, ale mają pewne różnice. Przyjrzyjmy się ich różnicom.
- Operator warunkowy to pojedyncza instrukcja programowa, natomiast instrukcja „if-else” to blok programistyczny, w którym instrukcje znajdują się w nawiasach.
- Do przypisania wartości zmiennej można także użyć operatora warunkowego, natomiast do przypisania nie można użyć instrukcji „if-else”.
- Nie jest przydatna do wykonywania instrukcji, gdy instrukcji jest wiele, natomiast instrukcja „if-else” okazuje się bardziej odpowiednia podczas wykonywania wielu instrukcji.
- Zagnieżdżony operator trójskładnikowy jest bardziej złożony i nie można go łatwo debugować, natomiast zagnieżdżona instrukcja „if-else” jest łatwa do odczytania i obsługi.