Go - 循環

概述

前幾篇文章分享了 array 數組、slice 切片、map 集合,這篇文章分享如何循環獲取裏面的元素,同時也是對前幾篇文章的複習。

本篇文章會用到的關鍵字 for、range、break、continue、goto、switch。
循環 array

 php

  //demo_18.go    
    package main    
    import (    
        "fmt"    
    )    
    func main() {    
        person := [3] string {"Tom", "Aaron", "John"}    
        fmt.Printf("len=%d cap=%d array=%v\n", len(person), cap(person), person)    
        fmt.Println("")    
        //循環    
        for k, v := range person {    
            fmt.Printf("person[%d]: %s\n", k, v)    
        }    
        fmt.Println("")    
        for i := range person {    
            fmt.Printf("person[%d]: %s\n", i, person[i])    
        }    
        fmt.Println("")    
        for i := 0; i < len(person); i++ {    
            fmt.Printf("person[%d]: %s\n", i, person[i])    
        }    
        fmt.Println("")    
        //使用空白符    
        for _, name := range person {    
            fmt.Println("name :", name)    
        }    
    }

 



運行結果:


循環 slice

   數組

//demo_19.go    
    package main    
    import (    
        "fmt"    
    )    
    func main() {    
        person := [] string {"Tom", "Aaron", "John"}    
        fmt.Printf("len=%d cap=%d slice=%v\n", len(person), cap(person), person)    
        fmt.Println("")    
        //循環    
        for k, v := range person {    
            fmt.Printf("person[%d]: %s\n", k, v)    
        }    
        fmt.Println("")    
        for i := range person {    
            fmt.Printf("person[%d]: %s\n", i, person[i])    
        }    
        fmt.Println("")    
        for i := 0; i < len(person); i++ {    
            fmt.Printf("person[%d]: %s\n", i, person[i])    
        }    
        fmt.Println("")    
        //使用空白符    
        for _, name := range person {    
            fmt.Println("name :", name)    
        }    
    }

 



運行結果:

循環 map

  函數

 //demo_20.go    
    package main    
    import (    
        "fmt"    
    )    
    func main() {    
        person := map[int]string{    
            1 : "Tom",    
            2 : "Aaron",    
            3 : "John",    
        }    
        fmt.Printf("len=%d map=%v\n", len(person), person)    
        fmt.Println("")    
        //循環    
        for k, v := range person {    
            fmt.Printf("person[%d]: %s\n", k, v)    
        }    
        fmt.Println("")    
        for i := range person {    
            fmt.Printf("person[%d]: %s\n", i, person[i])    
        }    
        fmt.Println("")    
        for i := 1; i <= len(person); i++ {    
            fmt.Printf("person[%d]: %s\n", i, person[i])    
        }    
        fmt.Println("")    
        //使用空白符    
        for _, name := range person {    
            fmt.Println("name :", name)    
        }    
    }

 


運行結果:

break

跳出當前循環,可⽤於 for、switch、select。

 blog

  //demo_21.go    
    package main    
    import "fmt"    
    func main() {    
        for i := 1; i <= 10; i++ {    
            if i == 6 {    
                break    
            }    
            fmt.Println("i =", i)    
        }    
    }

 



運行結果:

continue

跳過本次循環,只能用於 for。

 string

   //demo_22.go    
    package main    
    import "fmt"    
    func main() {    
        for i := 1; i <= 10; i++ {    
            if i == 6 {    
                continue    
            }    
            fmt.Println("i =", i)    
        }    
    }

 


運行結果:

goto

改變函數內代碼執行順序,不能跨函數使用。

 it

  //demo_23.go    
    package main    
    import "fmt"    
    func main() {    
        fmt.Println("begin")    
        for i := 1; i <= 10; i++ {    
            if i == 6 {    
                goto END    
            }    
            fmt.Println("i =", i)    
        }    
        END :    
            fmt.Println("end")    
    }

 


運行結果:

switch

  class

 //demo_24.go    
    package main    
    import "fmt"    
    func main() {    
        i := 1    
        fmt.Printf("當 i = %d 時:\n", i)    
        switch i {    
            case 1:    
                fmt.Println("輸出 i =", 1)    
            case 2:    
                fmt.Println("輸出 i =", 2)    
            case 3:    
                fmt.Println("輸出 i =", 3)    
                fallthrough    
            case 4,5,6:    
                fmt.Println("輸出 i =", "4 or 5 or 6")    
            default:    
                fmt.Println("輸出 i =", "xxx")    
        }    
    }

 


運行結果:

當 i = 1 時:輸出 i = 1

當 i = 2 時:輸出 i = 2

當 i = 3 時:

    輸出 i = 3

    輸出 i = 4 or 5 or 6

當 i = 4 時:輸出 i = 4 or 5 or 6

當 i = 7 時:輸出 i = xxx

結論:

    默認每一個 case 帶有 break

    case 中能夠有多個選項

    fallthrough 不跳出,並執行下一個 case

import

相關文章
相關標籤/搜索