登录
首页 >  Golang >  Go问答

如何在不执行以下脚本的情况下跳出循环

来源:stackoverflow

时间:2024-02-24 22:00:27 216浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《如何在不执行以下脚本的情况下跳出循环》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我想从第二个循环转到第一个循环(如break),但在break之后我不想打印fmt.println("the value of i is", i)。算法怎么样?

package main

import "fmt"

func main() {
    for i := 0; i < 2; i++ {
        for j := 0; j < 4; j++ {
            if j == 2 {
                fmt.Println("Breaking out of loop")
                break
            } else {
                fmt.Println("j = ", j)
            }
        }
        fmt.Println("The value of i is", i)
    }
}

解决方案


编辑:您编辑了代码,因此这是编辑后的答案。

要从内部继续外部循环(中断内部循环并跳过外部循环的其余部分),您必须继续外部循环。

要使用 continue 语句处理外循环,请使用标签:

outer:
    for i := 0; i < 2; i++ {
        for j := 0; j < 4; j++ {
            if j == 2 {
                fmt.println("breaking out of loop")
                continue outer
            } else {
                fmt.println("j = ", j)
            }
        }
        fmt.println("the value of i is", i)
    }

这将输出(在 Go Playground 上尝试):

j =  0
j =  1
breaking out of loop
j =  0
j =  1
breaking out of loop

原答案:

break 始终从最内层循环(更具体地说是 forswitchselect)中断,因此之后外层循环将继续进行下一次迭代。

如果您有嵌套循环,并且希望从内部循环中脱离外部循环,则必须使用标签:

outer:
    for i := 0; i < 2; i++ {
        for j := 0; j < 4; j++ {
            if j == 2 {
                fmt.println("breaking out of loop")
                break outer
            }
            fmt.println("the value of j is", j)
        }
    }

这将输出(在 Go Playground 上尝试):

The value of j is 0
The value of j is 1
Breaking out of loop

理论要掌握,实操不能落!以上关于《如何在不执行以下脚本的情况下跳出循环》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>