Тернарный оператор в си: Тернарный оператор и оператор запятая

java — Вложенный тернарный оператор

Вопрос задан

Изменён 6 месяцев назад

Просмотрен 6k раза

Прохожу тест-задачу:

С помощью тернарного оператора замените инициализацию переменной b в указанном коде:

int a = 10;
    int b;
    if (a > 0) {
        if (a < 100) {
            b = 1;
        } else {
            b = 0;
        }
    } else {
        b = -1;
    }

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

int a = 10;
    int b;
    b = (a > 0) ? ((a < 100) ? b = 1 : b = 0) : b = -1  ;

но тест отвечает, что я не прав. Где я ошибаюсь и почему это так?

  • java
  • тернарный-оператор
2

Да, вложенная тернарная операция. Логически сделал верно. Но допущена синтаксическая ошибка — попытка присвоить значение переменной b внутри тернарной операции.

Правильно должно быть так:

int a = 10;
int b = a > 0 ? a < 100 ? 1 : 0 : -1;

Вложенное выражение a < 100 ? 1 : 0 возвращает значение, которое используется в выражении выше a > 0 ? ВЛОЖЕННОЕ : -1, которое так же возвращает значение, но уже непосредственно в переменную b.

1

точку с запятой нужно убрать, тогда тренажёр съедает задание 🙂 (тоже самое сейчас прохожу)

2

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Тернарный оператор — JavaScript — Дока

Кратко

Скопировано

Тернарный оператор работает с тремя операндами: одним условием и двумя выражениями. Возвращает первое выражение, если условие истинно и второе, если условие ложно.

Используется как компактная замена условного оператора if...else.

Пример

Скопировано

const num = 5console.log(num === 5 ? 'Пять' : 'Не пять')// Пять
          const num = 5
console.log(num === 5 ? 'Пять' : 'Не пять')
// Пять

Как пишется

Скопировано

(A) ? (B) : (C)
          (A) ? (B) : (C)

Где A — условие, B — первое выражение, C — второе выражение.

Если первый операнд A вычисляется в истинное выражение true, то оператор вернёт выражение B. Если в false — вернёт выражение C.

Как понять

Скопировано

По механике работы тернарный оператор похож на инструкцию if...else, но позволяет писать меньше кода и записывать результат работы сразу в переменную.

В качестве примера преобразуем код, который использует инструкцию if...else:

const num = 10let resultif (num > 10) {  result = 'Число больше 10'} else {  result = 'Число меньше или равно 10'}console.log(result)
          
const num = 10 let result if (num > 10) { result = 'Число больше 10' } else { result = 'Число меньше или равно 10' } console.log(result)

Заменим условную конструкцию тернарным оператором:

const num = 10const result = num > 10 ? 'Число больше 10' : 'Число меньше или равно 10'console.log(result)
          const num = 10
const result = num > 10 ? 'Число больше 10' : 'Число меньше или равно 10'
console. log(result)

Код сократился и стал устанавливать значение переменной num сразу при объявлении. Это позволило использовать const вместо let.

Тернарный оператор как выражение

Скопировано

Тернарный оператор возвращает результат, его можно записать в переменную, как в примере выше, или вернуть с помощью

return из функции:

const salutation = function(name) {  return name ? `Рад видеть, ${name}!` : 'Привет, друг!'}console.log(salutation('Дока Дог'))// 'Рад видеть, Дока Дог!'console.log(salutation())// 'Привет, друг!'
          const salutation = function(name) {
  return name ? `Рад видеть, ${name}!` : 'Привет, друг!'
}
console.log(salutation('Дока Дог'))
// 'Рад видеть, Дока Дог!'
console.log(salutation())
// 'Привет, друг!'

💡

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

Вложенные тернарные операторы

Скопировано

Внутри одного тернарного оператора можно написать другой:

const num = 10const result =  num > 10 ? 'Число больше 10' :                num === 10 ? 'Число равно 10' : 'Число меньше 10'console.log(result)// 'Число равно 10'
          
const num = 10 const result = num > 10 ? 'Число больше 10' : num === 10 ? 'Число равно 10' : 'Число меньше 10' console.log(result) // 'Число равно 10'

В этом случае запись идентична использованию конструкций if...else if ... else. Сначала проверяется первое условие, если оно ложно, то проверяется второе и так далее. Отступы в примере проставлены для лучшей читаемости конструкции, они не влияют на выполнение кода.

На практике

Скопировано

Илья Космачев советует

Скопировано

При выборе между if. ..else и тернарным оператором в приоритет нужно ставить читабельность. Код читается чаще, чем пишется, поэтому чем лучше код читается, тем легче его понимать и изменять.

Разберём выбор между тернарным оператором и if...else на примерах.

Допустим, нужно по-разному поприветствовать нового и уже зарегистрированного пользователя. Здесь удобно использовать тернарный оператор, так как проверка короткая:

const greetings = function(isRegistered, userName) {  return isRegistered ? `Привет, ${userName}!` : 'Привет, незнакомец'}
          const greetings = function(isRegistered, userName) {
  return isRegistered ? `Привет, ${userName}!` : 'Привет, незнакомец'
}

Когда появляются вложенные тернарные операторы, лучше переходить на if...else.

Сравните код с тернарным оператором:

const greetings = function(isRegistered, userName, bePolite) {  return isRegistered ? `Привет, ${userName}!` : bePolite ? 'Здравствуйте!' : 'Привет, незнакомец'}
          const greetings = function(isRegistered, userName, bePolite) {
  return isRegistered ? `Привет, ${userName}!` : bePolite ? 'Здравствуйте!' : 'Привет, незнакомец'
}

И код с if...else:

const greetings = function(isRegistered, userName, bePolite) {  if (isRegistered) {    return `Привет, ${userName}!`  } else if (bePolite) {    return 'Здравствуйте!'  } else {    return 'Привет, незнакомец'  }}
          const greetings = function(isRegistered, userName, bePolite) {
  if (isRegistered) {
    return `Привет, ${userName}!`
  } else if (bePolite) {
    return 'Здравствуйте!'
  } else {
    return 'Привет, незнакомец'
  }
}

Если же приветствие зависит от роли, то цепочки вложенных тернарных операторов становятся нечитаемыми:

const greetings = function(role) {  return result = role === 'admin' ? 'Приветствую, босс' : role === 'moder' ? 'Приветствую, смотритель порядка' : role === 'user' ? 'Здравствуй, пользователь' : role === 'guest' ? 'Здравствуй, гость' : 'Привет, некто'}
          const greetings = function(role) {
  return result = role === 'admin' ? 'Приветствую, босс' : role === 'moder' ? 'Приветствую, смотритель порядка' : role === 'user' ? 'Здравствуй, пользователь' : role === 'guest' ? 'Здравствуй, гость' : 'Привет, некто'
}

Такой код можно улучшить форматированием, но лучше использовать switch:

const greetings = function(role) {    switch (role) {        case 'admin':            return 'Приветствую, босс'        case 'moder':            return 'Приветствую, смотритель порядка'        case 'user':            return 'Здравствуй, пользователь'        case 'guest':            return 'Здравствуй, гость'        default:            return 'Привет, некто'    }}
          
const greetings = function(role) { switch (role) { case 'admin': return 'Приветствую, босс' case 'moder': return 'Приветствую, смотритель порядка' case 'user': return 'Здравствуй, пользователь' case 'guest': return 'Здравствуй, гость' default: return 'Привет, некто' } }

На собеседовании

Скопировано

Задать вопрос в рубрику

Что значит слово «тернарный»?

Скопировано

🤚 Я знаю ответ

Марина Дорошук  отвечает

Скопировано

Существует три категории операторов, их названия зависят от количества операндов (то, к чему применяется оператор):

Stack Overflow на русском -проверить-если-а-. ..

Я разрабатываю приложение в React js, и у меня возникла проблема с проверкой существования определенного файла в каталоге или нет.

динамически импортировать компонент React, если этот файл существует, в противном случае…

Как проверить, был ли добавлен ресурс из публичного каталога в React?

reactjs — JavaScript Проверить, существует ли файл, если нет — Stack Overflow

Чтобы проверить, существует ли файл изображения, и загрузить другой файл по умолчанию, если нет если файл существует в реакции?

Как узнать, существует ли файл в js?

Как проверить, все ли изображения загружены в ответ?

Какой файл вам нужно посмотреть, чтобы убедиться, что реакция установлена?

Как проверить существование файла в React Native с помощью API «FileSystem»

romik-mk.medium.com › как проверить существование файла в… путь к каталогу документов устройства. Затем мы используем метод getInfo() для получения информации о файле.

Как проверить существование файла в React Native | by Romik Makavana

romik-mk.medium.com › как проверить наличие файла в…

Чтобы проверить, существует ли файл в React Native, вы можете использовать RNFS (React Native File System). ) библиотека. Вот пример: В этом примере RNFS.

Как проверить, существует ли файл? — JavaScript

forum.freecodecamp.org › как-вы-проверите-если-а-ф…

13.10.2021 · Я использую Fetch API для получения содержимого текстового файла в корневой папке моего проекта, но сначала я хочу убедиться, что файл существует.

Файл существует — npm.io

npm.io › поиск › ключевое слово: файл+существует

Реактивный интерфейс для проверки наличия файла в каталоге документов приложения. Возвращает да или нет. react-componentreact-nativeioscheck fileфайл существует.

Как использовать функцию react-native-fs.exists в react-native-fs | Snyk

snyk. io › Advisor › react-native-fs › functions

async function _getTextFile(textFile: string): Promise { // Сначала убедитесь, что файл существует const dir = CONFIG_SUBDIRECTORIES.text; const exists = await …

File.exists() — Pure JavaScript [Book] — O’Reilly

www.oreilly.com › библиотека › просмотр › pure-javascript

Объект File возвращает логическое значение, основанное на существовании файла, в котором он был вызван. Если файл существует, …

Проверка существования файла | kirupa.com

www.kirupa.com › html5 ›checking_if_a_file_exists

Чтобы использовать его в своем приложении, просто вызовите функцию doFileExist и передайте URL файла, существование которого вы проверяете. Функция возвращает …

Как проверить, существует ли файл в Node.js? — Сообщество DEV

dev.to › CollegeWAP › How-to-check-if-a-file-exists-i…

06.04.2023 · В основном есть 2 способа, которыми мы можем проверить, существует ли файл . … Мы можем использовать метод existsSync, чтобы проверить, существует ли конкретный файл.

Как проверить, существует ли файл в Node.js — Reactgo

reactgo.com › check-file-exists-node

Мы можем использовать метод fs.existsSync(), чтобы проверить, существует ли файл в файловой системе. Метод fs.existsSync() возвращает true, если указанный путь существует, в противном случае он …

Ähnlichesuchanfragen

Проверка React, существует ли изображение

Проверка JavaScript, существует ли файл

Выборка JS, проверка существования файла

Проверка React native если файл существует

Webpack проверяет, существует ли файл

React проверяет, существует ли реквизит

React проверяет, существует ли URL-адрес

RNFS проверяет, существует ли файл

Троичный условный оператор Swift (с примерами)

В этой статье вы научитесь использовать условный или тернарный оператор для изменения потока управления программой.

Тернарный оператор может использоваться для замены оператора if...else в определенных сценариях.

Прежде чем вы узнаете о тернарном операторе, обязательно узнайте о выражении Swift if…else.


Тернарный оператор в Swift

Тернарный оператор оценивает условие и выполняет блок кода на основе условия. Его синтаксис:

 условие? выражение1 : выражение2 

Здесь тернарный оператор оценивает условие и

  • , если условие равно true , выражение1 выполняется.
  • если условие равно false , выражение2 выполняется.

Тернарный оператор принимает

3 операнда ( условие , выражение1 и выражение2 ). Отсюда и название тернарный оператор .


Пример: Swift Ternary Operator

 // программа для проверки прохождения или отказа
пусть оценки = 60
// использование тернарного оператора
пусть результат = (знаки >= 40) ? "проходит" : "не проходит"
print("Вы " + результат + " экзамен") 

Вывод

  Вы ​​сдали экзамен.   

В приведенном выше примере мы использовали тернарный оператор для проверки прохождения или отказа.

пусть результат = (метки >= 40) ? "пройдено" : "не пройдено"

Здесь, если отметок больше или равно 40 , проход присваивается результату . В противном случае сбой присваивается результату .


Тернарный оператор вместо if…else

Тернарный оператор может использоваться для замены некоторых типов if...else утверждений. Например,

Вы можете заменить этот код

 // проверить число положительное или отрицательное
пусть число = 15
переменный результат = ""
если (число > 0) {
     результат = "Положительное число"
}
еще {
     результат = "Отрицательное число"
}
print(result) 

with

 // тернарный оператор для проверки положительного или отрицательного числа
пусть число = 15
пусть результат = (число > 0)? «Положительное число» : «Отрицательное число»
печать(результат) 

Вывод

  Положительное число  

Здесь обе программы дают одинаковый результат.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *