首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Julia - Continue外循环

Julia - Continue外循环
EN

Stack Overflow用户
提问于 2016-11-07 23:39:30
回答 2查看 1.1K关注 0票数 5

我目前正在将一个算法从Java移植到Julia,现在我遇到了一个部分,当满足某些条件时,我必须从内部循环继续外部循环:

代码语言:javascript
复制
 loopC: for(int x : Y){
            for(int i: I){
                if(some_condition(i)){
                    continue loopC;
                }                   
            }
        }

我在GitHub上发现了一些关于这个话题的问题,但似乎只有一个讨论,还没有解决方案。有人知道如何在Julia中做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2016-11-08 00:07:05

就像在其他一些语言中一样,julia使用break来完成以下操作:

代码语言:javascript
复制
for i in 1:4
    for j in 1:4
        if j == 2
            break
        end
    end
end

当j为2时,跳出内部循环

但是,如果您需要退出外部循环,可以使用@goto和@label,如下所示

代码语言:javascript
复制
for i in 1:4
    for j in 1:4
        if (j-i) == 2
            @goto label1
        end 

        if j == 2 
            @goto label2
        end 
        do stuff
    end 
    @label label2
end 
@label label1

直接从julia docs http://docs.julialang.org/en/release-0.5/manual/control-flow/

有时,在测试条件被篡改之前终止一段时间的重复,或者在到达可迭代对象的末尾之前停止

循环中的迭代是很方便的。这可以使用break关键字

来完成

票数 5
EN

Stack Overflow用户

发布于 2019-06-24 05:04:48

正如@isebarn所提到的,break可用于退出内部循环:

代码语言:javascript
复制
for i in 1:3
    for j in 1:3
        if j == 2
            break # continues with next i
        end  
        @show (i,j)  
    end # next j  
end # next i   
(i, j) = (1, 1)
(i, j) = (2, 1)
(i, j) = (3, 1)

但是,需要注意,因为break的行为取决于嵌套循环的指定方式:

代码语言:javascript
复制
for i in 1:3, j in 1:3
    if j == 2
        break # exits both loops
    end  
    @show (i,j)  
end # next i,j   
(i, j) = (1, 1)  

请参阅https://en.wikibooks.org/wiki/Introducing_Julia/Controlling_the_flow#Nested_loops

也可以从包含内部循环的嵌套函数执行return操作,尽管很麻烦:

代码语言:javascript
复制
for i in 1:3  
    (i -> for j in 1:3  
         if j == 2  
             return  
         end  
         @show (i,j)  
    end)(i)
end  
(i, j) = (1, 1)
(i, j) = (2, 1)
(i, j) = (3, 1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40469007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档