|
0 / 0 / 0
Регистрация: 13.01.2010
Сообщений: 7
|
||||||
Прекратить выполнение оператора if13.01.2010, 09:29. Показов 29046. Ответов 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 Оператор, с помощью которого можно прекратить выполнение цикла...
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|