Как выйти из if-блока?
Можно ли это как-то сократить? Например, если бы можно было выходить из блока if , можно было бы не писать else . Но вроде бы оператор break такого не позволяет. Подскажите, что можно сделать?
Отслеживать
user256824
задан 28 ноя 2019 в 18:50
Aggravator Aggravator
273 5 5 серебряных знаков 26 26 бронзовых знаков
Можно выходить почти из любого места программы, я использую для такого случая goto ! В метку вынес проверку переменной которая заполняется false в случаи ошибки и true удачи, вместо кучи return и блоков else.
28 ноя 2019 в 19:02
Я думаю оператор goto не то чтобы устарел, но является признаком плохого тона)
28 ноя 2019 в 19:17
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вынесите ваш блок проверок в отдельную функцию и используйте return
Или поднимайте исключения
Отслеживать
ответ дан 28 ноя 2019 в 19:09
Anton Shchyrov Anton Shchyrov
33.1k 2 2 золотых знака 33 33 серебряных знака 67 67 бронзовых знаков
В чем смысл тратить ресурсы на инициализацию дополнительной функции для возврата результата существующей функции ?) если не учитывать относительно масштабной обработки результата перед его возвратом с учетом повторений в нескольких местах (чего в вопросе не было)
28 ноя 2019 в 19:14
@noname2019 в повышении читабельности кода. Потери производительности при вызове ничтожна по сравнению со сложностью поддержки этого спагетти-кода
28 ноя 2019 в 19:17
В чем читабельность то ? в увеличении и усложнении кода ?
28 ноя 2019 в 19:18
@noname2019 в структурировании и разделении программы на логические блоки
28 ноя 2019 в 19:20
против функций возражений не имею, но исключения то тут каким боком, автор же не заявляет, что это проверки ошибок каких-либо.
28 ноя 2019 в 22:30
Не знаю, как отнесутся к этому адепты правильного кода на php, но можно использовать . цикл:
foreach([1] as $_not_used) < if(условие) < . if(условие) < break; >. > if($a==4) < break; >>
Кроме того, если условия подходящие, возможно использование конструкции switch. А так же вложенных конструкций циклов и switch с указанием оператору break количества уровней вложенности, из которого выходить.
Выход из внутреннего if
Выход из внутреннего ЦИКЛА
Есть 2 цикла for, один в другом. Во внутреннем цикле есть конструкция if. Если в if выполняется.
Выход из внутреннего цикла с одновременным обнулением прогресса во внешнем
Если есть вложеный цикл и надо вдруг начать всё сначала в главном, но в конце цикла стоит инкремент.
Оператор break даёт нам выход из обоих циклов или только из внутреннего
Господа, проконсультируйте в одном вопросе! Написав кучу программ, в голове образовался полный.
Угадай, где выход! (Поиск листа бинарного дерева, содержащего выход из лабиринта)
Никогда раньше не решал задачи на деревья, но вот решил начать. Самая большая проблема в том, что я.
Как выйти из if java
Во время выполнения программы на Java выход из конструкции if else осуществляется автоматически, как только код внутри тела конструкции будет выполнен.
int a = 15; int b = 10; // создадим конструкцию if else для проверки условия (a > b) if (a > b) System.out.println("Мы находимся внутри if else, так как условие (a > b) верно"); > System.out.println("Мы вышли из if else, так как код внутри конструкции был выполнен")
Вывод в консоли будет следующим:
C++ Выход из if в цикле
Как принудительно выйти из if, чтобы программа перешла к выполнению метод1.
goto не уместен.
Дополнен 11 лет назад
Ложная тревога.
Простите за беспокойство.
Уже голова ни какая, я протупил.
Лучший ответ
Автору может стоит почитать про условия? с них нету выхода! они либо выполняются либо не выполняются!
например:
int a = 5;
int b = 5;
if(a == b)<
выполнится если a = b
>else<
выполнится если a не равно b
>
Остальные ответы
Оператор break. Он позволит завершиться циклу if и программа продолжится с выполнения как раз строки «Метод1».
Миша ФирсовПрофи (650) 11 лет назад
Тогда вообще выйдет из цикла, а мне нужно остаться в нем
Миша Фирсов Профи (650) break вообще из цикла выкидывает
При чем тут цикл вообще? Тебе нужно выйти из if, цикл побоку. Итак:
if() <
.
if(!условие_выхода) <
.
>
>
метод1
не?
Миша ФирсовПрофи (650) 11 лет назад
Мне нужно принудительно выйти из if и остаться в цикле. break выкидывает из цикла, как еще я не знаю, прошу помощи
Капитан Гугл Искусственный Интеллект (146193) А где у меня break?
и скобок после if
вроде никак, надо полностью завершить код в скобках.
Внутри if поставь еще один if.
Миша ФирсовПрофи (650) 11 лет назад
И что написать во внутреннем if
Krab Bark Искусственный Интеллект (191662) То, что не должно выполняться при выходе из внешнего if.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.