powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Выход из двух (n?) циклов
5 сообщений из 5, страница 1 из 1
Выход из двух (n?) циклов
    #38711294
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть такой метод, в нём два цикла:ClassMethod DoubleExcape()
{
  for i=1:1:5 
  { 
    for j=1:1:5 
    {     
      write "i=",i,"  j=",j,!
    }
  }
}Я хочу, в случае если во внутреннем цикле выполняется какое-либо условие (j=3), перейти к следующему элементу внешнего цикла, у меня получилось реализовать это двумя методами, но ни один из них мне не нравится.

С помощью goto:ClassMethod DoubleExcapeGoto()
{
  for i=1:1:5 
  { 
    for j=1:1:5 
    {     
      goto:j=3 fail
      write "i=",i,"  j=",j,!
    }
fail
  }
}
И с помощью манипуляции переменной цикла:ClassMethod DoubleExcapeIf()
{
  for i=1:1:5 
  { 
    for j=1:1:5 
    {     
      if j=3 
      {
        set j=5
        continue
      }
      write "i=",i,"  j=",j,!
    }
  }
}
Можно сделать это как-то более оптимально? Как с continue, но для большего внешнего цикла:ClassMethod DoubleExcapeContinue()
{
  for i=1:1:5 
  { 
    for j=1:1:5 
    {     
      continue:j=3
      write "i=",i,"  j=",j,!
    }
  }
}
...
Рейтинг: 0 / 0
Выход из двух (n?) циклов
    #38711296
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простой quit внутри цикла, будет просто выходом на верхний уровень т.е. во внешний цикл в вашем случае
...
Рейтинг: 0 / 0
Выход из двух (n?) циклов
    #38711418
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eduard93 ,
ClassMethod DoubleExcape()
{
  for i=1:1:5 
  { 
    for j=1:1:5 
    {     
       quit:j=3
      write "i=",i,"  j=",j,!
    }
  }
} Exiting a FOR Loop
...
Рейтинг: 0 / 0
Выход из двух (n?) циклов
    #38711505
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, servit
Спасибо.
...
Рейтинг: 0 / 0
Выход из двух (n?) циклов
    #38711629
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit eduard93 ,
ClassMethod DoubleExcape()
{
  for i=1:1:5 
  { 
    for j=1:1:5 
    {     
       quit:j=3
      write "i=",i,"  j=",j,!
    }
  }
} Exiting a FOR Loop

Тут же можно вспомнить вновь появившуюся команду return , которую удобно использовать, если нужно совсем выйти из метода несмотря на любой уровень вложенности циклов.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Выход из двух (n?) циклов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]