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;
;
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт