logo

Operator warunkowy w C

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:

Operator warunkowy w C

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:

Operator warunkowy w C

Jeśli podamy wiek użytkownika powyżej 18 lat, wynikiem będzie:

Operator warunkowy w C

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

Operator warunkowy w C

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.