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

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

Войти
Регистрация
Восстановить пароль
 
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
#1

Форма записи с использованием "?" знака - C++

29.07.2013, 13:43. Просмотров 428. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
 
int main()
{
int a = 0;
int b = 0;
int res = 0;
std::cin >> a >> b;
 
res = (a > 0 && b < 10) ? a: 100;
 
std::cout << res << "\n";
 
system("pause");
return 0;
}
строчка 10, подскажите, правильно ли я понимаю запись и самое главное конструкцию

(a > 0 && b < 10) ? a - если условия в скобках выполняются, то будет присвоено a причем a будет взято из-за скобок, т.е. вот это a (выделенное жирным) - (a > 0 && b < 10) ? a

(a > 0 && b < 10) ? a: 100 если условие в скобках не выполняется то будет присвоено значение 100 т.е. ни a ни b, а именно 100.

все верно?

Добавлено через 2 минуты
И еще вопрос, то что я a, b, res сразу инициализирую нулями (во избежание ошибок, конечно не в данной программе, а вообще), это нормальный подход или я только зря строчки перевожу (можно же было записать int a, b, res;) ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 13:43     Форма записи с использованием "?" знака
Посмотрите здесь:

C++ Значение знака "%"
C++ Эмуляция планировщика процессов с использованием волокон. Алгоритм "случайный выбор"
Придумать задачу на массивы с использованием логической операции "И" C++
C++ "Вычисление функций с использованием их разложения в степенной ряд"
C++ Написать программу с использованием структуры "Студент"
C++ Шифрование и дешифрование с использованием алгоритма "исключающее ИЛИ"
Конструкция "если, то" с использованием классов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
29.07.2013, 13:44     Форма записи с использованием "?" знака #2
В скобках только одно логическое выражение: (a > 0 && b < 10). Если оно истинно, то идем по ветке ? (в данном случае, будет заменено присвоено a). Идем по ветке ":" если условие ложно.
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
29.07.2013, 13:45     Форма записи с использованием "?" знака #3
Цитата Сообщение от VLK Посмотреть сообщение
res = (a > 0 && b < 10) ? a: 100;
по другому это можно записать вот таким способом:
C++
1
2
3
4
if (a > 0 && b < 10)
    res = a;
else
    res = 100;
это одно и то же
Fintt
 Аватар для Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
29.07.2013, 13:45     Форма записи с использованием "?" знака #4
Цитата Сообщение от VLK Посмотреть сообщение
(a > 0 && b < 10) ? a
верно
Цитата Сообщение от VLK Посмотреть сообщение
(a > 0 && b < 10) ? a: 100;
тоже самое только иначе 100(else) Вроде так
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
29.07.2013, 13:46     Форма записи с использованием "?" знака #5
Лучше инициализировать где есть потенциальная угроза вызвать неинициализированную переменную. Например, можно не инициализировать если на следующей строке будет ввод этой переменной.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
29.07.2013, 13:47  [ТС]     Форма записи с использованием "?" знака #6
А, все я понял конструкцию, если true то до двоеточия (":") и будет присвоено значение, которое идет после "?", если false, то берется только то что после двоеточия (":").
Fintt
 Аватар для Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
29.07.2013, 13:49     Форма записи с использованием "?" знака #7
Цитата Сообщение от VLK Посмотреть сообщение
И еще вопрос, то что я a, b, res сразу инициализирую нулями (во избежание ошибок, конечно не в данной программе, а вообще), это нормальный подход или я только зря строчки перевожу (можно же было записать int a, b, res; ) ?
Не стоит обнулять, всё равно присвоишь значения с клавиатуры.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
29.07.2013, 13:56  [ТС]     Форма записи с использованием "?" знака #8
Цитата Сообщение от Fintt Посмотреть сообщение
Не стоит обнулять, всё равно присвоишь значения с клавиатуры.
Ну в этой программе да, а если программа большая и в ней очень много переменных и есть шанс на то, что я забуду что то инициализировать при этом в программе буду пытаться к этой переменной обратиться, тогда же будет печально?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
29.07.2013, 13:57     Форма записи с использованием "?" знака #9
Форма записи с использованием "?" знака
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
29.07.2013, 14:00     Форма записи с использованием "?" знака #10
не стоит обнулять - это лишняя инструкция присвоения для процессора
Fintt
 Аватар для Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
29.07.2013, 14:00     Форма записи с использованием "?" знака #11
Вообще пишут в книгах что "не жалейте времени на придумывания переменных", чтобы не путаться. Если использовать те же переменные это как бы не оч правильно, сам не разберёшься что к чему, а если будешь так делать, то нужно будет обнулять. Почитай про локальные и глобальные переменные, в примерах увидишь где нужно обнулять.
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
29.07.2013, 14:02  [ТС]     Форма записи с использованием "?" знака #12
И еще вопрос, может он покажется глупым и размыты, какие еще комбинации записи существуют с "?" знаком?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2013, 14:07     Форма записи с использованием "?" знака
Еще ссылки по теме:

Вывести результаты сдачи экзаменов из класса "Зачетка" с использованием итераторов C++
Для агрегатного объекта требуется инициализация с использованием "{.}" C++
Написать программу с использованием алгоритма "Решето Эратосфена" C++
Как с использованием графических средств C++ сделать "движущийся самолёт"? C++
Реализация UNIX команды "cat" в консоли Windows с использованием WinAPI C++

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2583 / 235
Регистрация: 01.11.2011
Сообщений: 6,391
Завершенные тесты: 1
29.07.2013, 14:07     Форма записи с использованием "?" знака #13
VLK, Тернарная условная операция.
Yandex
Объявления
29.07.2013, 14:07     Форма записи с использованием "?" знака
Ответ Создать тему
Опции темы

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