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

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

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

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

29.07.2016, 19:08. Просмотров 284. Ответов 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++
Зачем? Ведь, так элегантнее. Начало http://www.cyberforum.ru/cpp-beginners/thread718192.html

Альтернатива if (.) {.} (тернарный оператор) - C++
блин запамятовал как это делается пишут вместо стандартной формы что то типа y &lt; x : x = m напомните плиз как это называется, какие там...

Засунуть в тернарный оператор - C++
Помогите засунуть выражение if ( (i &lt; 0 || j &lt; 0) || (i &gt;= ROW || j &gt;= COL) || (i == oi &amp;&amp; j == oj)) continue; else if (arr)...

Ошибка "%: недопустимо, правый оператор имеет тип double" - C++
int _tmain(int argc, _TCHAR* argv) { setlocale( LC_ALL,&quot;Russian&quot; ); double a, b, e, q1, q2; int c, d, p1, p2; int k=0; ...

Не компилируется, ошибки: "отсутствует оператор, соответствующий этим операндам" - C++
Помогите исправить ошибку, данные проект создавался в среде eclipse при переносе на VS 2010 стал выдавать ошибки при компиляции. Исправьте...

"Отсутствует оператор >> соответствующий этим операндам" - в чем ошибка? - C++
в книге приводится пример. main (){ string a=&quot; &quot;; string b; while (cin&gt;&gt;b) { if (a==b){ cout&lt;&lt;&quot;Повторяющееся слово...

Ошибка: отсутствует оператор "<<", соответствующий этим операндам - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;windows.h&gt; #include &lt;conio.h&gt; struct Student //объявляем...

Ошибка: отсутствует оператор "==", соответствующий этим операндам - C++
в чем ошибка? Может #include не хватает, но вроде все на месте. #include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; ...

Почему конструктор и "оператор =" не могут быть виртуальными? - C++
Добрый вечер, какое аргументированое объяснение: &quot;почему конструктор и оператор=&quot; не могут быть виртуальными?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
6408 / 2626 / 457
Регистрация: 15.11.2014
Сообщений: 5,795
Завершенные тесты: 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
15 / 15 / 7
Регистрация: 15.08.2013
Сообщений: 177
Завершенные тесты: 2
29.07.2016, 19:41  [ТС]     Тернарный оператор "?" #3
hoggy, Я понимаю как до тройки доходит, но я не пойму почему решение не дойдет до значения 5?
Tuma
60 / 41 / 18
Регистрация: 28.09.2013
Сообщений: 193
29.07.2016, 19:43     Тернарный оператор "?" #4
MRG_Serejka, потому что в данном случае тернарный оператор относится только к присвоению a=4
C++
1
a=4?a=5:a=6
HelicopterK52
658 / 201 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
29.07.2016, 19:43     Тернарный оператор "?" #5
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
но я не пойму почему решение не дойдет до значения 5?
потому что всё это находится в "ветке" false
MansMI
1137 / 934 / 240
Регистрация: 08.01.2012
Сообщений: 3,398
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     Тернарный оператор "?"
Ответ Создать тему
Опции темы

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