天天看點

Go語言之基本循環控制

一、基本文法

1、格式

for 循環變量初始化;循環條件;變量疊代 {
   // 循環體操作
  循環操作語句
}      

2、說明

for循環有四個要素:循環變量初始化、循環條件、循環體、變量疊代。

二、循環流程

Go語言之基本循環控制

三、for循環的四種寫法

1、第一種

就是基本文法中的格式寫法:

package main

import "fmt"

func main() {

    // 寫法一
    for i := 0; i < 10; i++ {

        fmt.Println("i=",i)
    }

}      

2、第二種

package main

import "fmt"

func main() {

    i := 0
    for i < 10 {
        fmt.Println("i=",i)
        i++
    }

}      

3、第三種

package main

import "fmt"

func main() {

    // 寫法三
    i := 0
    for {
        if i < 10 {
            fmt.Println("i=", i)
        } else {
            break
        }
        i++
    }

}      

上述的寫法等同于for ; ; {} 無限循環的寫法,配合break來進行使用。

 4、for-range

for-range可以友善的周遊字元串和數組。傳統方式是使用下标進行取值。

package main

import "fmt"

func main() {

    var str string = "hello"

    for i := 0; i < len(str); i++ {

        fmt.Printf("%c \n", str[i])

    }

}      

而for-range的方式如下:

package main

import "fmt"

func main() {

    var str string = "hello"

    //for-range方式

    for index, value := range str {
        fmt.Printf("index=%d value=%c \n", index, value)
    }

}      

四、執行個體

實作1-100數字的求和。

package main

import "fmt"


func main() {

    sum := 0
    for i := 1; i <= 100; i++ {
        sum += i
    }
    fmt.Println(sum)

}      

五、while與do...while的實作

Go語言中沒有while和do...while文法,但是可以使用for循環語句達到這種效果。

(一)while循環實作

1、文法

循環變量初始化
for {
   if 循環條件表達式 {
          break
      }
     循環體
    循環變量疊代
}      

2、執行個體

package main

import "fmt"


func main() {
   i := 0

   for {
      if i > 10 {
          break
      }
      fmt.Println("i=",i)
      i++
      
   }

}      

(二)do...while循環實作

循環變量初始化
for {
     循環體
    循環變量疊代
   if 循環條件表達式 {
          break
      }

}      

package main

import "fmt"


func main() {
   i := 0

   for {
        fmt.Println("i=",i)
        i++
        if i > 10 {
            break
        }
      
   }

}      

do...while是先執行循環體再進行判斷,是以至少執行一次。

作者:iveBoy

出處:http://www.cnblogs.com/shenjianping/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連接配接,否則保留追究法律責任的權利。

go