Menu
Coddy logo textTech

Тернарный условный оператор

Часть раздела Fundamentals путешествия по C на Coddy — урок 29 из 63.

Тернарный условный оператор — это сокращенный способ записи инструкции if-else в одну строку.

Синтаксис следующий:

condition ? value_if_true : value_if_false;

Давайте рассмотрим пример. Сначала приведем традиционный оператор if-else:

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

Теперь давайте перепишем это, используя тернарный оператор:

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

В этом примере:

  • a > b — это условие
  • Если условие истинно, возвращается a
  • Если условие ложно, возвращается b

Тернарный оператор также может быть вложенным, но это может затруднить чтение кода:

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

Задание

Легко

Создайте программу, которая проверяет, является ли число положительным, отрицательным или нулем, используя условный оператор. Программа должна:

  1. Принимать целое число от пользователя.
  2. Использовать условный оператор, чтобы определить, является ли число положительным, отрицательным или нулем.
  3. Выводить результат в формате: "The number is [positive/negative/zero]".

Шпаргалка

Тернарный условный оператор предоставляет сокращенный способ записи инструкции if-else в одну строку.

Синтаксис:

condition ? value_if_true : value_if_false;

Пример сравнения традиционного if-else с тернарным оператором:

// Традиционный if-else
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

// Тернарный оператор
int max = (a > b) ? a : b;

Тернарный оператор может быть вложенным, хотя это снижает читаемость:

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

Попробуйте сами

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    
    // Напишите свой код ниже
    char* result = 
    
    printf("The number is %s\n", result);
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals