Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
 Аватар для Holmes
5 / 5 / 1
Регистрация: 24.08.2014
Сообщений: 78

Как прервать выполнение блока else

30.08.2014, 22:22. Показов 6414. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как можно прервать выполнение блока else,если это возможно.Например есть блок if-else
C#
1
2
3
4
5
6
7
8
if(условие)
{
     // команды                    
}
else
{                      
    // команды
}
Но в блоке else есть еще одно условие.Допустим,что x должен быть не больше 9,если он больше 9,то команды в блоке else не будут выполняться.Я знаю что можно впихнуть туда еще один блок if-else,но дело в том,что у меня много таких блоков и во всех должно проверяться данное условие(x<10).Поэтому я написал метод count:
C#
1
2
3
4
5
6
7
8
public void count()
        {            
            if (x == 10)
            {
                 // сюда надо что-то типа break                 
            }
            else countnumb++;
        }
И впихнул его в каждый блок else:
C#
1
2
3
4
5
6
7
8
9
if(условие)
{
     // команды                    
}
else
{  
    count();                   
    // команды
}
Заранее благодарю.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.08.2014, 22:22
Ответы с готовыми решениями:

Прервать выполнение метода
Как прервать выполнение метода, если нет доступа к исходникам метода. Метод выполняется 1 мин, нужно его прервать через 30 сек. Прерывание...

Как прервать выполнение тестового метода при отсутствии соединения с Интернет
В проекте с юнит-тестами (VS 2010) есть метод, который тестирует некую функцию. Но чтобы ее протестировать, нужно инет-подключение....

Как прервать выполнение команды?
Написал программу которая выжидает заданное количество времени с помощью команды delay_ms() и хочу сделать так чтобы по нажатию кнопки...

11
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
30.08.2014, 22:53
Holmes, не очень понятно что требуется.Могу посоветовать либо дополнить условия до однозначного выполнения,либо прерывать функцию return-ом.
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.08.2014, 22:59
else if?
0
 Аватар для metallix
10 / 10 / 5
Регистрация: 07.09.2013
Сообщений: 48
30.08.2014, 23:46
Допустим,что x должен быть не больше 9,если он больше 9,то команды в блоке else не будут выполняться
Ну так совсем убери "else" блок.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
31.08.2014, 10:16
Вместо метода count (или внутри него)
C#
1
countnumb += (x == 10) ? 0 : 1;
0
0 / 0 / 0
Регистрация: 24.02.2014
Сообщений: 11
31.08.2014, 11:47
может ты про это? и чем break не подошел?
C#
1
2
3
4
5
6
7
8
if(условие)
{
  //что-то делать 1
}
else if (другое условие)
{
  //что-то делать 2
}
0
 Аватар для Holmes
5 / 5 / 1
Регистрация: 24.08.2014
Сообщений: 78
31.08.2014, 13:29  [ТС]
S_el,
прерывать функцию return-ом.
А подробнее можно? Я пробовал впихнуть return сюда:Код C#
C#
1
2
3
4
5
6
7
8
public void count()
        {            
            if (x == 10)
            {
                 // сюда надо что-то типа break                 
            }
            else countnumb++;
        }
Но это бессмысленно. Прерывается данный блок,а не тот,что мне нужен.

Добавлено через 1 минуту
tezaurismosis, согласен. Это для примера.

Добавлено через 2 минуты
Dimann2571, да типо этого,но я в самом начале написал что у меня таких блоков много, и я хотел как-то упростить код.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
31.08.2014, 19:40
Holmes, похоже ваш вариант goto.
0
0 / 0 / 1
Регистрация: 31.08.2014
Сообщений: 10
31.08.2014, 19:51
В данном случае у вас классический пример рекурсивной функции. Просто используйте return;
А goto это вообще из basica и fortrana и к тому же противоречит дезайну c# (нет хорошего примера где нужен goto)
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
31.08.2014, 19:55
Цитата Сообщение от mikeravx Посмотреть сообщение
А goto это вообще из basica и fortrana и к тому же противоречит дезайну c# (нет хорошего примера где нужен goto)
Уже обсуждалось иногда goto необходим.Его не просто так оставили в C#.
0
0 / 0 / 1
Регистрация: 31.08.2014
Сообщений: 10
31.08.2014, 20:05
Цитата Сообщение от S_el Посмотреть сообщение
Уже обсуждалось иногда goto необходим.Его не просто так оставили в C#.
Не могу согласиться S_el. Его оставили для простоты адаптации старого кода где часто применялся goto. Но goto в современных программах означяет что разработчик не смог правильно структурировать свой код используя классы и функции. Чаще всего goto можно заменить более красивым использованием функций, try/catch, или другими современными design patterns.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
31.08.2014, 20:10
Цитата Сообщение от mikeravx Посмотреть сообщение
Его оставили для простоты адаптации старого кода где часто применялся goto.
Разве что совсем старого.

Цитата Сообщение от mikeravx Посмотреть сообщение
Но goto в современных программах означяет что разработчик не смог правильно структурировать свой код используя классы и функции.
Чаще всего так и бывает.Но иногда goto необходим.(конечно не в случае ТС).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.08.2014, 20:10
Помогаю со студенческими работами здесь

Как прервать выполнение программы?
В общем сабж. Запустил программы в ТП, видимо допустил ошибки в коде - выполнился бесконечный цикл. Закрыв ТП потеряется код программы. Как...

Как прервать выполнение процедуры?
Ребят, подскажите пожалуйста, как остановить выполнение процедуры. В Паскале помню пользовались метками. Допустим при клике на кнопку...

Как прервать выполнение программы?
Здравствуйте. Необходимо прервать выполнение программы, но чтобы при этом форма не закрылась. У меня очень много функций и по этому return...

Как прервать выполнение запроса?
Пишу на Delphi+ADO+MDB база. Есть компонент ADOQuery. В коде запускаю: ADOQuery1.Active = true; Если запрос очень длинный, как...

Как прервать выполнение процедуры?
Есть четыре процедуры, вызывающие одна другую. Они читают аксесовскую базу и строят дерево в TreeView. Мне необходимо комбинацией клавиш...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru