Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 30.08.2017
Сообщений: 24
1

Оператор "запятая" внутри условия if(a>0, b>0)

01.11.2018, 13:55. Просмотров 2101. Ответов 9
Метки нет (Все метки)

Почему ЭТО не является ошибкой?

C++
1
2
3
4
if(a>0 , b>0)
{
    cout << "1";
}
Что делает запятая?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2018, 13:55
Ответы с готовыми решениями:

Что? (оператор "," (запятая))
Имеется часть кода, взятого из Википедии. double *alpha = new double; double *beta = new...

Выяснить, имеется ли пара соседствующих символов ",-" "-," (запятая, тире) в тексте
#include &lt;iostream.h&gt; //Уважаемые программисты помогите переделать эту //Вот задание (Выяснить,...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному
бинарный &quot;++&quot;: &quot;Counter&quot; не определяет этот оператор или преобразование к типу приемлемо к...

9
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
01.11.2018, 14:44 2
Просто разделяет выражения. Результат берётся от правого.
0
1 / 1 / 0
Регистрация: 30.08.2017
Сообщений: 24
06.11.2018, 02:52  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Просто разделяет выражения. Результат берётся от правого.
А зачем?
0
С чаем беда...
Эксперт CЭксперт С++
8053 / 3939 / 1087
Регистрация: 18.10.2014
Сообщений: 8,471
06.11.2018, 04:44 4
Цитата Сообщение от Denzel97 Посмотреть сообщение
Что делает запятая?
То же, что делает оператор "запятая" в любом другом контексте: последовательно, слева-направо вычисляет свои операнды.

Цитата Сообщение от Denzel97 Посмотреть сообщение
А зачем?
Оператор "запятая" реализует одну из фундаментальнейших концепций структурного программирования: последовательное выполнение. Левый операнд оператора "запятая" вычисляется (и все его побочные эффекты материализуются) до того, как начнется вычисление правого операнда оператора "запятая".
0
зомбяк
1420 / 1084 / 310
Регистрация: 14.05.2017
Сообщений: 3,552
06.11.2018, 05:32 5
Цитата Сообщение от Denzel97 Посмотреть сообщение
А зачем?
Ну надо например явно задать последовательность действий
C++
1
2
int a = 5;
a = (++a, a += 10, a - 5);
А в операторе if тут скорее всего нужны операторы логический действий && и || .

Добавлено через 17 минут
Ну и ещё для объявления переменных используется
C++
1
int a = 2, b = 3, c = 4;
0
Don't worry, be happy
16921 / 9797 / 1887
Регистрация: 27.09.2012
Сообщений: 24,296
Записей в блоге: 2
06.11.2018, 06:28 6
TRam_, в объявлении переменных не оператор запятая.
1
Модератор
1600 / 1060 / 480
Регистрация: 17.07.2012
Сообщений: 5,245
06.11.2018, 06:33 7
Цитата Сообщение от TRam_ Посмотреть сообщение
Ну и ещё для объявления переменных используется
По такой логике и в таком коде используется оператор запятая
C++
1
std::sort(a.begin(), a.end());
, но это не так.
0
Нарушитель
4605 / 2496 / 567
Регистрация: 12.03.2015
Сообщений: 12,257
06.11.2018, 08:45 8
Я пользуюсь запятой, чтобы не городить операторные скобки для 2 операций. Типа:
C++
1
while (x) --y, x += y;
0
С чаем беда...
Эксперт CЭксперт С++
8053 / 3939 / 1087
Регистрация: 18.10.2014
Сообщений: 8,471
06.11.2018, 18:38 9
Цитата Сообщение от TRam_ Посмотреть сообщение
Ну и ещё для объявления переменных используется
C++
1
int a = 2, b = 3, c = 4;
В объявлении переменных , не имеет никакого отношения к оператору "запятая", точно так же как = не имеет никакого отношения ко оператору присваивания.
0
зомбяк
1420 / 1084 / 310
Регистрация: 14.05.2017
Сообщений: 3,552
06.11.2018, 18:48 10
Croessmah, TheCalligrapher, буду знать. О том что "=" в этом случае есть конструктор копирования мне известно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2018, 18:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка "не найден оператор, принимающий правый операнд типа "const std::string" "
Привет. Подчеркивает Name. Как можно обратиться к public string из класса наследника? 1) Класс...

C2678 бинарный ">>": не найден оператор, принимающий левый операнд типа "std::ostream"
Код: #include &lt;iostream&gt; #include &lt;memory&gt; #include &lt;typeinfo&gt; #include &lt;ctime&gt; #include...

Error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
Вот ошибка 1&gt;------ Построение начато: проект: ыпошряоям, Конфигурация: Debug Win32 ------ 1&gt; ...

Error C2678: бинарный "<<": не найден оператор, принимающий левый операнд типа "std::ifstream"
Собственно, текст ошибки приведен в названии темы. Сам код: #include &quot;stdafx.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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