|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
||||||
Прекратить выполнение оператора if13.01.2010, 09:29. Показов 29094. Ответов 23
Метки нет (Все метки)
Возропщем вопрос такой, что можно использовать чтобы прекратить выполнение оператора if перерыл весь инет так и не нашел
к примеру:
0
|
||||||
| 13.01.2010, 09:29 | |
|
Ответы с готовыми решениями:
23
Как прекратить выполнение функции? Как прекратить выполнение апплета? Прекратить выполнение ADOQuery.Insert; |
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 13.01.2010, 09:39 | |
|
break; кажется должен работать
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
||||||
| 13.01.2010, 09:42 | ||||||
|
Avertus,
0
|
||||||
|
183 / 184 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
|
||||||
| 13.01.2010, 09:44 | ||||||
|
Статья в
Википедии
Оправданное применение
Тем не менее, в практическом программировании применение GOTO в некоторых случаях можно считать допустимым. Поскольку GOTO — «простейший», «атомарный» оператор перехода, а все остальные являются «составными», производными от него, то применение GOTO допустимо и оправданно, когда другие средства языка не реализуют или недостаточно эффективно реализуют нужную функциональность. К таким случаям можно отнести: [править] Выход из нескольких вложенных циклов сразу Обычно считается, что в языках, где операторы досрочного завершения цикла (такие, как break и continue в Си) могут относиться только к тому из вложенных циклов, в котором они расположены, использование goto допустимо, чтобы выйти из нескольких вложенных циклов сразу. Здесь GOTO значительно упрощает программу, избавляя от необходимости создания вспомогательных переменных-флагов и условных операторов. Другие варианты решения этой проблемы — помещение вложенных циклов в отдельную процедуру и использование команды досрочного выхода из процедуры, а в языках с поддержкой исключений — генерацию исключения, обработчик которого располагается за пределами циклов. Однако подобные решения могут снижать производительность, в особенности если этот участок кода вызывается многократно (поскольку и вызовы процедур, и операторы работы с исключениями транслируются далеко не в одну машинную инструкцию). Пример: int matrix[n][m]; int value; ... for(int i=0; i<n; i++) for (int j=0; j<m; j++) if (matrix[i][j] == value) { printf("value %d found in cell (%d,%d)\n",value,i,j); //act if found goto end_loop; } printf("value %d not found\n",value); //act if not found end_loop: ; Прямолинейный способ избавления от GOTO — создать дополнительную переменную-флаг, сигнализирующую, что надо выйти из внешнего цикла (после выхода из внутреннего по break) и обойти блок кода, выполняющийся, когда значение не найдено. Но вряд ли этот способ можно рекомендовать на практике, так как в результате код окажется загромождён проверками, станет длиннее и будет дольше работать. Но можно вынести код в функцию и использовать return. http://ru.wikipedia.org/wiki/GOTO
0
|
||||||
|
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
|
||||||
| 13.01.2010, 10:33 | ||||||
|
э-э-э-э...
ну, мне кажется, для прекращения выполнения оператора должна быть причина. а причина описывается оператором if(). и получается вложенный if:
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
||||||||
| 13.01.2010, 21:24 [ТС] | ||||||||
|
error C2043: illegal break и с goto тоже ругается и вопще мне казлось goto желательно не использовать. что бы неломать голову тут некому вот эта чатсть
0
|
||||||||
|
62 / 63 / 3
Регистрация: 25.05.2009
Сообщений: 520
|
|
| 13.01.2010, 21:44 | |
|
тебе тут else вообще не нужно
если сработал хоть один if за ним следует return. если ни один не сработал - тогда "not found" без всяких else
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 13.01.2010, 22:11 | |
|
Дабы не порождать тонны кода, может быть, лучше загнать в массив структур (char*; void(*)()) и циклом искать?
1
|
|
|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
||
| 13.01.2010, 22:40 [ТС] | ||
|
0
|
||
|
62 / 63 / 3
Регистрация: 25.05.2009
Сообщений: 520
|
|
| 13.01.2010, 22:55 | |
|
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 14.01.2010, 01:47 | |
|
Avertus,
на break он ругается error C2043: illegal break значит ты сделал что-то не так. потому что break - он простой как удар лопатой.
1
|
|
|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
||
| 14.01.2010, 21:31 [ТС] | ||
|
Тока встала новая проблема вместе с if() он из for выкидывает
0
|
||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 14.01.2010, 22:53 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
||
| 15.01.2010, 08:33 [ТС] | ||
break не канает пробовал в отделюную процедуру это вынести и использовать return тоже не помогло
0
|
||
|
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 5
|
|
| 15.01.2010, 15:39 | |
|
Киньте в меня тапком, а switch использовать что не позволяет ?
0
|
|
|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
|
| 15.01.2010, 15:45 [ТС] | |
|
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||
| 15.01.2010, 22:27 | ||
|
А вот что не позволяет использовать https://www.cyberforum.ru/showthread.php?p=477682 ?
0
|
||
|
62 / 63 / 3
Регистрация: 25.05.2009
Сообщений: 520
|
||
| 15.01.2010, 23:01 | ||
|
break прерывает и выходит из for. continue прерывает следующие за ним операции и продолжает цикл с обновленным счетчиком.
0
|
||
|
0 / 0 / 0
Регистрация: 15.01.2010
Сообщений: 5
|
||
| 16.01.2010, 22:28 | ||
|
Если вас не устраивает предложенный вариант вот ещё один: добавить флаг. В каждом теле оператора if рисуем приравнивание флага к 1, потом добовляем проверку флага тем же if'ом, пишем, что команда некорректна и обнуляем флаг, вот и всё.
0
|
||
| 16.01.2010, 22:28 | |
|
Помогаю со студенческими работами здесь
20
прекратить выполнение зациклившейся программы Как прекратить выполнение асинхронного метода По нажатию кнопки прекратить выполнение прерывания 1Ch Оператор, с помощью которого можно прекратить выполнение цикла...
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|