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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.63
nafan9
2 / 2 / 0
Регистрация: 17.12.2009
Сообщений: 37
#1

оператор "?" - C++

19.07.2010, 11:51. Просмотров 5145. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
int fact( int x)
    {
    return x==1 ? 1:x*fact(x-1);
    }
что означает данное выражение? интересует вопросительный знак, как я понимаю это условие. ещё если можно объяснитель на другом примере по синтаксису, почему после "?" идёт 1, а не х.
спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2010, 11:51     оператор "?"
Посмотрите здесь:

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

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

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

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

Ошибка: отсутствует оператор "<<", соответствующий этим операндам - 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; ...

Показать все четные числа столько, сколько выполняет оператор "for" - C++
здравствуйте подскажите пожалуйста как мне сделать чтобы показать все четные числа столько сколко выполнает оператор &quot;for&quot; #include...

Условный оператор (определить есть ли во втором символе строки символ "-") - C++
Народ выручите! вот такой код. выдаёт ошибки. как определить есть ли во втором символе строки символ &quot;-&quot;??? #include &lt;iostream&gt; ...

подсчитать количество операторов, помня, что каждый оператор заканчивается "," - C++
задание 1: В тексте программы на языке С + + (имя файла на диске ввести по запросу) подсчитать количество операторов, помня, что каждый...

Массив: Подсчет матрицы 3x3 по средствам класса используя оператор ">>" - C++
Здравствуйте! Помогите плз разобраться... У меня было задание в универе создать прогу подсчета матрицы 3x3 по средствам класса используя...

Из трёх заданных чисел вывести на экран самое наименьшее. Оператор "if" - C++
Дано условие, из трёх чисел вывести на экран самое наименьшее. Вот кусок кода: cout &lt;&lt; &quot;Введите три целых числа: &quot;; cin &gt;&gt; x &gt;&gt; y...

Error C2679: бинарный "=": не найден оператор, принимающий правый операнд - C++
Ошибка 1 error C2679: бинарный &quot;=&quot;: не найден оператор, принимающий правый операнд типа &quot;std::basic_string&lt;_Elem,_Traits,_Alloc&gt;&quot; (или...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
19.07.2010, 12:06     оператор "?" #2
Это тернарный оператор. Синтаксис:
условие ? выражение1 : выражение 2;
Если условие верное, то вычисляется выражение1, в противном случае - выражение2.
Serg112
8 / 8 / 1
Регистрация: 28.06.2010
Сообщений: 24
19.07.2010, 13:41     оператор "?" #3
Эти две записи одинаковы.

C++
1
2
3
4
int fact( int x)
        {
        return x==1 ? 1:x*fact(x-1);
        }
C++
1
2
3
4
5
6
7
int fact( int x)
        {
        if( x == 1 )
          return 1;
        else
          return x*fact(x-1);
        }
Добавлено через 5 минут
По оператору ? могу дать простой пример:

x = (b > 0) ? 1 : 0;

если b больше нуля то x == 1 в противном случае x ==0
но опять оператор ? можно заменить оператором if

if( b > 0 )
x = 1;
else
x = 0;

Ещё пример:

x = (b > 0) ?( (b > 10) ? 11 : 9 ) : -1;
Ответ Создать тему
Опции темы

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