Menu
Coddy logo textTech

Operator warunkowy (ternary)

Część sekcji Podstawy ścieżki C w Coddy. Lekcja 29 z 63.

Trójargumentowy operator warunkowy to skrócony sposób zapisu instrukcji if-else w jednym wierszu.

Składnia jest następująca:

condition ? value_if_true : value_if_false;

Przyjrzyjmy się przykładowi. Najpierw tradycyjna instrukcja if-else:

int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

Teraz przepiszmy to, używając operatora warunkowego:

int max = (a > b) ? a : b;

W tym przykładzie:

  • a > b to warunek
  • Jeśli warunek jest prawdziwy, zwracana jest wartość a
  • Jeśli warunek jest fałszywy, zwracana jest wartość b

Operator trójargumentowy można również zagnieżdżać, ale może to utrudnić czytanie kodu:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
challenge icon

Wyzwanie

Łatwy

Utwórz program, który za pomocą operatora warunkowego sprawdza, czy liczba jest dodatnia, ujemna czy równa zero. Program powinien:

  1. Pobrać od użytkownika liczbę całkowitą.
  2. Użyć operatora warunkowego, aby określić, czy liczba jest dodatnia, ujemna czy równa zero.
  3. Wypisać wynik w formacie: "The number is [positive/negative/zero]".

Spróbuj swoich sił

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    
    // Napisz swój kod poniżej
    // Zastąp tekst zastępczy wyrażeniem warunkowym
    char* result = "zero";
    
    printf("The number is %s\n", result);
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C online