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

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

Восстановить пароль Регистрация
 
MRG_Serejka
10 / 10 / 3
Регистрация: 15.08.2013
Сообщений: 146
Завершенные тесты: 2
29.07.2016, 19:08     Тернарный оператор "?" #1
Добрый Вечер .
Столкнулся с вопросом помогите понять хочу разобраться с ходом ее работы.

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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
5114 / 2115 / 403
Регистрация: 15.11.2014
Сообщений: 4,800
Завершенные тесты: 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
10 / 10 / 3
Регистрация: 15.08.2013
Сообщений: 146
Завершенные тесты: 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
633 / 176 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
29.07.2016, 19:43     Тернарный оператор "?" #5
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
но я не пойму почему решение не дойдет до значения 5?
потому что всё это находится в "ветке" false
MansMI
1046 / 843 / 205
Регистрация: 08.01.2012
Сообщений: 3,020
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     Тернарный оператор "?"
Ответ Создать тему
Опции темы

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