golang 循环语句

在go语言中 循环语句只支持for,不像其他语言一样,有支持for和while循环。

for 循环表达式。

for 赋值操作;逻辑运算;自加{

}

如下打印10次1-10的随机数

func main() {
    rand.Seed(time.Now().UnixNano())
    for i := 0; i < 10; i++ {
        fmt.Println(rand.Intn(10))
    }

}

死循环

go语言中死循环非常简单只要条件为true则循环一直下去,

func main() {
    rand.Seed(time.Now().UnixNano())
    for true {
        fmt.Println(rand.Intn(10) + 100)
    }
}
可以简写成下面这种方式
func main() {
    rand.Seed(time.Now().UnixNano())
    for {
        fmt.Println(rand.Intn(10) + 100)
    }
}
 

 break和continue

go语言中的break和continue也和其语言一样,一般用在跳出循环,break跳出整个循环,continue跳出本次循环继续进行下次循环。

func main() {
    rand.Seed(time.Now().UnixNano())
    for {
        fmt.Println(rand.Intn(10) + 100)
        break
    }
}



func main() {
    rand.Seed(time.Now().UnixNano())
    for {
        continue
        fmt.Println(rand.Intn(10) + 100)

    }
}
 

 多层for循环中的 break和continue

如果多个for循环嵌套的话,那么break和continue跳出哪一个?是整个for还是当前for?下面代码运行的结果可以看出啦,break和continue只跳出当前的for循环

func main() {
    rand.Seed(time.Now().UnixNano())
    for {
        fmt.Println("我是外面的for")
        for {
            fmt.Println("我是里面的for")
            break
        }

    }
}

go to语句

goto语句用于跳到某一个标签。

func main() {

    for {
        fmt.Println("我是外面的for")
        for {
            fmt.Println("我是里面的for")
            goto breakhere
        }

    }
breakhere:
    fmt.Println("breakarea")
    os.Exit(0)
}

 for 循环标签

 在for循环中的标签的作用,用于多层for循环嵌套的时候,break和continue跳转问题,默认情况下break和continue只跳出当前的for

func main() {
out:
    for {
        fmt.Println("i am out")
        for {
            break out
        }
    }
}
原文地址:https://www.cnblogs.com/Nolover/p/12550553.html