|
Выход из двух (n?) циклов
|
|||
---|---|---|---|
#18+
У меня есть такой метод, в нём два цикла: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,! } } } ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2014, 00:29 |
|
Выход из двух (n?) циклов
|
|||
---|---|---|---|
#18+
Простой quit внутри цикла, будет просто выходом на верхний уровень т.е. во внешний цикл в вашем случае ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2014, 00:49 |
|
Выход из двух (n?) циклов
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2014, 17:36 |
|
Выход из двух (n?) циклов
|
|||
---|---|---|---|
#18+
DAiMor, servit Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2014, 22:57 |
|
Выход из двух (n?) циклов
|
|||
---|---|---|---|
#18+
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 , которую удобно использовать, если нужно совсем выйти из метода несмотря на любой уровень вложенности циклов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2014, 17:11 |
|
|
start [/forum/topic.php?fid=39&msg=38711296&tid=1556838]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 405ms |
0 / 0 |