Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MRG_Serejka
14 / 14 / 6
Регистрация: 15.08.2013
Сообщений: 171
Завершенные тесты: 2
#1

Тернарный оператор "?" - C++

29.07.2016, 19:08. Просмотров 212. Ответов 5
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main()
{
int a;
a=0?a=1:a=2?a=3:a=4?a=5:a=6;
cout << a;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2016, 19:08     Тернарный оператор "?"
Посмотрите здесь:

C++ Засунуть в тернарный оператор
Тернарный оператор vs if/else C++
C++ Альтернатива if (.) {.} (тернарный оператор)
C++ Из трёх заданных чисел вывести на экран самое наименьшее. Оператор "if"
Error C2679: бинарный ">>": не найден оператор, принимающий правый операнд C++
Ошибка: отсутствует оператор "<<", соответствующий этим операндам C++
C++ Ошибка "%: недопустимо, правый оператор имеет тип double"
Почему конструктор и "оператор =" не могут быть виртуальными? C++
Не компилируется, ошибки: "отсутствует оператор, соответствующий этим операндам" C++
Ошибка: отсутствует оператор "==", соответствующий этим операндам C++
C++ Тернарный оператор
C++ "Отсутствует оператор >> соответствующий этим операндам" - в чем ошибка?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
5746 / 2328 / 419
Регистрация: 15.11.2014
Сообщений: 5,192
Завершенные тесты: 1
29.07.2016, 19:17     Тернарный оператор "?" #2
C++
1
a=0?a=1:a=2?a=3:a=4?a=5:a=6;
1.
переменной а присваивается значение ноль.
затем сравнивается с булевым true/false.
поскольку там ноль - попадаем во вторую ветку:

2.
C++
1
a=2?a=3:a=4?a=5:a=6;
переменной а присваивается значение 2.
затем сравнивается с булевым true/false.
поскольку там 2 - попадаем в первую ветку:

3.
C++
1
a=3;
MRG_Serejka
14 / 14 / 6
Регистрация: 15.08.2013
Сообщений: 171
Завершенные тесты: 2
29.07.2016, 19:41  [ТС]     Тернарный оператор "?" #3
hoggy, Я понимаю как до тройки доходит, но я не пойму почему решение не дойдет до значения 5?
Tuma
59 / 40 / 18
Регистрация: 28.09.2013
Сообщений: 186
29.07.2016, 19:43     Тернарный оператор "?" #4
MRG_Serejka, потому что в данном случае тернарный оператор относится только к присвоению a=4
C++
1
a=4?a=5:a=6
HelicopterK52
645 / 188 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
29.07.2016, 19:43     Тернарный оператор "?" #5
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
но я не пойму почему решение не дойдет до значения 5?
потому что всё это находится в "ветке" false
MansMI
1120 / 917 / 232
Регистрация: 08.01.2012
Сообщений: 3,303
29.07.2016, 19:46     Тернарный оператор "?" #6
C++
1
(a=0?a=1:(a=2?a=3:(a=4?a=5:a=6)));
может так понятнее будет
Yandex
Объявления
29.07.2016, 19:46     Тернарный оператор "?"
Ответ Создать тему
Опции темы

Текущее время: 19:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru