Does a break statement break from a switch/select?

后端 未结 7 1254
不知归路
不知归路 2020-12-04 07:57

I know that switch/select statements break automatically after every case. I am wondering, in the following code:

for {
    switch          


        
7条回答
  •  悲哀的现实
    2020-12-04 08:09

    this should explain it.

    for{
        x := 1
        switch {
        case x >0:
            fmt.Println("sjus")
        case x == 1:
            fmt.Println("GFVjk")
        default:
            fmt.Println("daslkjh")
        }
    }
    }
    

    Runs forever

    for{
        x := 1
        switch {
        case x >0:
            fmt.Println("sjus")
            break
        case x == 1:
            fmt.Println("GFVjk")
        default:
            fmt.Println("daslkjh")
        }
    }
    }
    

    Again, runs forever

    BUT

    package main
    
    import "fmt"
    
    func main() {
    d:
    for{
    x := 1
        switch {
        case x >0:
            fmt.Println("sjus")
            break d
        case x == 1:
            fmt.Println("GFVjk")
        default:
            fmt.Println("daslkjh")
        }
    }
    }
    

    will print sjus ... clear ?

    http://play.golang.org/p/GOvnfI67ih

提交回复
热议问题