Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.06.2021
Сообщений: 15
.NET Core

Как выйти из внешнего условия if?

18.08.2021, 14:09. Показов 1715. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
мне нужно выйти из внешнего условие if
C#
1
2
3
4
5
6
7
8
9
10
11
if (...) 
{
 if (...) 
 {
   
 }
 else (...) 
 {
   \\здесь нужно ключевое слово для выхождение но какое??
 }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2021, 14:09
Ответы с готовыми решениями:

Проверка на симметричность, как выйти из внешнего цикла?
Подскажите, как выйти из внешнего цикла. n = int(input()) a = for i in range(n): a.append(list(map(int, input().split()))) ...

Как выйти из условия if
Я хочу сделать спавн монеток так чтобы был рандом, заспавнить хорошую и плохую монету. И проблема в том что при программа крутится на...

Как выйти из условия if?
Пользователю предлагается выбор, он должен ввести 1 или 2. Я хочу учесть и ситуацию, когда пользователь ошибся, и,чтобы не перезапускать...

16
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
18.08.2021, 14:11
Bekezhaan, return, goto, throw new Exception
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
18.08.2021, 14:17
C#
1
goto
шучу.
Все зависит от того, нужно ли продолжить внешний цикл или нет.
C#
1
continue;
C#
1
break;
Добавлено через 5 минут
Ой, а тут речь про просто if... Ну ладно
0
0 / 0 / 0
Регистрация: 30.06.2021
Сообщений: 15
18.08.2021, 14:27  [ТС]
как изпользовать goto?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
18.08.2021, 14:33
Цитата Сообщение от Bekezhaan Посмотреть сообщение
как изпользовать goto?
началось... Привет ЭлдХаспу!

Добавлено через 1 минуту
C#
1
2
_имя_метки_ :
// какой-то код...
C#
1
goto _имя_метки_;
0
 Аватар для lovember
152 / 100 / 40
Регистрация: 14.10.2016
Сообщений: 379
18.08.2021, 16:13
Bekezhaan, насколько я понял, в вашей конструкции предполагается такая логика работы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
if (/*условие1*/)
{
    if (/*условие2*/)
    {
        // Работа_1;
    }
    else // (не условие2)
    {
        // Работа_2;
    }
    // Работа_3;
}
Если после выполнения Работы_2 нужно выйти из внешнего if, не выполняя Работу_3, то получается, что Работа_3 должна выполняться только если верны условие1 и условие2. Т.е. Работу_3 можно поместить после Работы_1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
if (/*условие1*/)
{
    if (/*условие2*/)
    {
        // Работа_1;
        // Работа_3;
    }
    else // (не условие2)
    {
        // Работа_2;
    }
}
Если проблема не в этом, то поясните что имеется в виду.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
18.08.2021, 16:18
lovember, Работы_3 скорее всего нет. Если /*условие1*/, то Работа_1 или Работа_2 по /*условию2*/.
0
 Аватар для lovember
152 / 100 / 40
Регистрация: 14.10.2016
Сообщений: 379
18.08.2021, 16:22
Работы_3 скорее всего нет.
Тогда не вижу проблемы. Либо пусть ТС пояснит свой вопрос.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
18.08.2021, 16:26
ТС сам не совсем понимает, что нужно. Или понимает, но неправильно.
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
18.08.2021, 16:33
... может ТС if с каким-либо вариантом цикла перепутал?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
18.08.2021, 16:45
Цитата Сообщение от carrotik Посмотреть сообщение
... может ТС if с каким-либо вариантом цикла перепутал?
Это первое, что бросилось в глаза.
0
Уважайте чужое время
75 / 23 / 8
Регистрация: 01.02.2013
Сообщений: 191
19.08.2021, 10:50
Если речь всё же об условиях и нужно прерваться, в случае, когда выполнение дальнейших инструкций, находящихся в области первого if уже не нужно, то может такое:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    if (!/*условие1*/)
    {
        return;
    }
 
    /*работа1*/
 
    if (/*условие2*/)
    {
        /*работа2*/
        /*работа3*/
    }
 
    // (не условие2) // else здесь уже redundant qualifier, кстати, 
    /*работа4, которая должна была быть там, где else*/
Если Вам нужен вложенный if, а внутри ещё и if else, то вероятнее всего, Вы что-то не так спроектировали (но это не точно =) )

Добавлено через 6 минут
...модифицируя ответ уважаемого lovember
0
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
19.08.2021, 11:57
Цитата Сообщение от wizard41 Посмотреть сообщение
шучу.
не понимаю холиваров вокруг goto. В данном конкретно случае неважно, цикл или goto, прочитать можно без проблем. Проблема начнется, если там будет несколько таких goto в одном цикле. И вообще, если взять switch/case это и есть тот же самый goto, только с другим именем, и про него плохо никто не говорит
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
19.08.2021, 12:11
Цитата Сообщение от Pilarentes Посмотреть сообщение
И вообще, если взять switch/case это и есть тот же самый goto
Конечно, ведь все происходит в пределах блока switch и окидывается взглядом.
Цитата Сообщение от Pilarentes Посмотреть сообщение
Проблема начнется, если там будет несколько таких goto
В этом то и суть - соблазнять неокрепшие умы втыкать goto где нужно и не нужно .
0
4 / 4 / 0
Регистрация: 15.09.2019
Сообщений: 96
19.08.2021, 21:16
В этом то и суть - соблазнять неокрепшие умы втыкать goto где нужно и не нужно
Когда мне это сказали, я создавал по нескольку флагов и проверял их на истинность. Это было намного хуже.
Goto может быть страшен (на уровне чтения) только в скриптовых языках или кривых руках.
Но я слышал, что goto не используется не по этой причине, что он как-то ломает оптимизацию или что-то в этом роде.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3414 / 2735 / 575
Регистрация: 04.09.2018
Сообщений: 8,584
Записей в блоге: 3
19.08.2021, 22:16
Цитата Сообщение от VladisSVostok Посмотреть сообщение
Когда мне это сказали, я создавал по нескольку флагов и проверял их на истинность. Это было намного хуже.
Значит у вас сразу что-то пошло не так.
Цитата Сообщение от VladisSVostok Посмотреть сообщение
что он как-то ломает оптимизацию или что-то в этом роде.
Нет, ничего он не ломает.
Дабы постичь вам возможные неприятности применения goto, приведу свой личный пример из практики:
Был у нас один товарищ, тоже вот любитель прыгать по коду. Так вот, возникла ситуация, когда в некую функцию нужно было внести изменения (добавился функционал), ну и соответственно некоторые проверки на валидность входных данных.
Поправки то он внес, но в проверках не стал особо мудрить, и, (внимание!) с помощью goto успешно отослал текущий программный счетчик куда-то далеко наверх, видимо в надежде, что пришедшие "сверху" новые данные окажутся подходящими и пройдут проверку. Мысль то правильная, вроде, но он не учел того, что ниже функции из которой он "красиво выпрыгнул" идет сброс флага, по которому собственно и выполняется вход в эту функцию. Естественно, при втором проходе флаг поднят, и мы как фанера над Парижем красиво пролетаем мимо той функции. И пролетаем много раз, ведь сбросить флаг нечему.
Около двух недель заняло обнаружение причины, по которой цифры в БД не бьются с реальными показателями, в конце отчетного периода. И все из-за одного дурака, поставившего одно goto не в том месте. И не сказать что он профан - программист со стажем вроде. Просто лень. Тупая лень и невнимательность привела к этой ошибке.
А вообще, таких парадоксов миллион найдется. Так вот, я изначально занял такую позицию: не рекомендовать его использование, тем более молодым/начинающим. Нет, не запрещаю, просто не рекомендую. Строго не рекомендую. Это в последствии лишение премии, а то и работы.
0
HF
 Аватар для HF
1316 / 895 / 200
Регистрация: 09.09.2011
Сообщений: 2,670
Записей в блоге: 2
20.08.2021, 08:31
Цитата Сообщение от wizard41 Посмотреть сообщение
Мысль то правильная, вроде, но он не учел того, что ниже функции из которой он "красиво выпрыгнул" идет сброс флага, по которому собственно и выполняется вход в эту функцию.
Вот почти то что я описывал. Ошибка произошла уже на стадии проектирования. Видимо в коде не был понятен алгоритм (да-да, даже в хаосе есть своя система).
Зачем нужен "сброс флага" не уверен. Я же использовал что-то типа "машины состояний". То есть менял состояния с одного на другое. Таким образом даже перейдя вначало, уже знал что должен найти.
Но прогонял тесты очень много и знал что должно быть. Алгоритм был не совершенен и в итоге приходилось добавлять и более глубокий анализ данных. А флаги... только оптимизация. Очень быстрое чтение состояния, там где это 100% подтверждено.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2021, 08:31
Помогаю со студенческими работами здесь

Выйти с внешнего цикла
Всем привет,смотрите,есть вот такой вот код char fin; int pov; do { system("cls"); cout <<...

Выйти из внутреннего цикла, сохранив поток внешнего
#include <stdio.h> int main(void) { int number = 10; int count = 0;// обьявляем и инициализируем переменную/счетчик...

рассмотреть указанную последовательность в цикле и выйти из цикла, достигнув указанного условия
рассмотреть указанную последовательность в цикле и выйти из цикла, достигнув указанного условия с выдачей порядкового номера члена, при...

Завершение внешнего цикла из внутреннего условия
Подскажите, как в функции set() завершить цикл for при выполнении условия цикла if? Компилятор выдает ошибку и если я правильно понял то...

Как выйти?
Как можно выйти из АГС, ссылок в индексе было 400 стало 17 http://unionclub.ru/


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru