с квалификацией любого из ответных элементов сделать разрыв петли отличным

Завершается ли цикл, когда он уточняет оператор возврата? даже если значение равно нулю?


person Munna Bhai    schedule 15.11.2010    source источник


Ответы (1)


Ваш вопрос слишком расплывчатый, чтобы на него можно было ответить с какой-либо определенностью. Однако если бы я рискнул предположить, я готов поспорить, что вы имеете в виду управляющие операторы внутри цикла '.each'?

Если да, краткий ответ: нет, return (или break) не завершает цикл. Единственный способ сделать это - выбросить исключение в цикле а ля:

try{
    (1..10).each{ n->
        println n
        if (n == 5) throw new Exception()
       }
}        
catch(Exception){}

Но это полная мерзость. Вместо этого используйте цикл for или while.

См. также: возвращение после закрытия

Если я ошибаюсь, возможно, вы могли бы опубликовать какой-нибудь код, иллюстрирующий вашу тему?

person Northover    schedule 16.11.2010