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

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

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

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

19.07.2010, 11:51. Просмотров 4793. Ответов 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     оператор "?"
Посмотрите здесь:

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>" C++
C++ Исправить ошибку:error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
C++ Error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
Error C2678: бинарный "<<": не найден оператор, принимающий левый операнд типа "std::ifstream" C++
Оператор "delete" и ошибка "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Error" C++
Бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" C++
C++ Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел
Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация") C++
бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному C++
C2678 бинарный ">>": не найден оператор, принимающий левый операнд типа "std::ostream" C++
C++ Error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,433
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;
Yandex
Объявления
19.07.2010, 13:41     оператор "?"
Ответ Создать тему
Опции темы

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