Использование break

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
День добрый, есть код такой
Код:
int counter = 0;
counter += 1;
if (counter == 1)
{
    project.SendInfoToLog("123", true);
    break;
}
Вроде все просто, но не работает, пишет Отсутствует внешняя точка для выхода из цикла или продолжения.
Что не так?
Нужно чтобы при выполнении условия код прекращался, и сниппет заканчивался с ошибкой, чтобы я мог дальше увести шаблон
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
break является точкой выхода из циклов for, foreach, while, но if - это не цикл, а условие.
Код:
byte counter = 0;
while (counter != 1)
{
        project.SendInfoToLog("daada", false);
        counter++;
}
 
  • Спасибо
Реакции: masterLomaster и Porosenok

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
А если мне нужно чтобы при выполнении условия (с if) заканчивался снипет? Это не реально реализовать с помощью сишарпа?

А в этом коде что ты привел в пример, он ведь увеличит 1 раз и потом while не выполнится по условию. И он ведь пойдет дальше выполнять код другой, если он ниже есть? Это если кода нет дальше то конец, а допустим дальше идет еще код, тогда как?

Я придумал решение, но очень корявое, через goto и в самом конце case1
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Код:
while (true)
{
       if (твое условие)
       {
               участок кода;
               break;
       }
       else
       {
               участок кода;
       }
}
 
  • Спасибо
Реакции: Porosenok

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
C#:
int counter = 0;
counter++;
if (counter == 1)
{
    project.SendInfoToLog("123", true);
    throw new Exception("ОШИБКА");
}
 
  • Спасибо
Реакции: serg1208

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
C#:
int counter = 0;
counter++;
if (counter == 1)
{
    project.SendInfoToLog("123", true);
    throw new Exception("ОШИБКА");
}
Зачем же тут по ошибке выходить? Думаю лучше будет по зеленой:
return "ok";
Ну или если нужно по красной, то можно еще так:
return null;
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
Зачем же тут по ошибке выходить? Думаю лучше будет по зеленой:
return "ok";
Ну или если нужно по красной, то можно еще так:
return null;
Выход по ошибке в любом случае пойдет по красной линии, в данном случае это не играет роли =)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)