C++Почему не работает выражениеa==0 ? break:continue; ???? (снутри цикла)
C++
Почему не работает выражение
a==0 ? break:continue; ???? (снутри цикла)
Юрик
А почему обязано работать?
Ванька
По синтаксису все верно вроде, почему нет
Валентина Тришечкина
Что такое а?
Роман Сведущев
оно вообщем может быть 0?
Женек Лучев
int a;
Степан Куземский
cin>>a;
Любовь
просто переменная, может
Надежда Тарарак
Мне необходимо что б, если юзер введет 0, цикл прекратился
Эвелина Колокольчикова
Дайте код полностью
Romka Baram
В приятелем вопросе
1 ответ
Олег Шурмалин
Тернарный оператор должен возвращать значение (либо ссылку на переменную), которое позже можно использовать. К примеру, если в целочисленной переменной a записано число -3, то используя такой синтаксис:
int absa = a gt;= 0 ? a : -a;
можно присвоить переменной absa значение -3 = 3.
Выражения break, continue (и, например, return) управляют исполненьем программки, показывая, какую аннотацию исполнять последующей, и не отдают никакого значения (даже void). Поэтому при попытке использовать такие выражения в качестве аргументов тернарного оператора, ждущего, что оба аргумента возвратят какое-то значение, появляется ошибка компиляции.
Если очень охото использовать тернарный оператор для выхода из цикла (но для чего?) можно выкидывать исключение, которое позже обрабатывать, к примеру, так:
try
int a = 5;
while(true)
a == 0 ? throw "a equals 0" : (void) 0;
a--;
catch (char const* s)
if (s != "a equals 0") throw s;
;
int absa = a gt;= 0 ? a : -a;
можно присвоить переменной absa значение -3 = 3.
Выражения break, continue (и, например, return) управляют исполненьем программки, показывая, какую аннотацию исполнять последующей, и не отдают никакого значения (даже void). Поэтому при попытке использовать такие выражения в качестве аргументов тернарного оператора, ждущего, что оба аргумента возвратят какое-то значение, появляется ошибка компиляции.
Если очень охото использовать тернарный оператор для выхода из цикла (но для чего?) можно выкидывать исключение, которое позже обрабатывать, к примеру, так:
try
int a = 5;
while(true)
a == 0 ? throw "a equals 0" : (void) 0;
a--;
catch (char const* s)
if (s != "a equals 0") throw s;
;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов