1. 程式人生 > >go基礎語法-循環語句

go基礎語法-循環語句

pre convert tin fio sum 語法 ews 十進制 err

循環語句

1.golang裏的循環只有for,沒有while,for語句的條件不需要括號(同if語句)

sum := 0
for i=0;i<100;i++ {
    sum += i
}

2. for語句的條件可以省略初始條件,結束條件,遞增表達式

省略初始條件,相當於while

sum,i := 0,0
for ;i<100;i++ {
    sum += i
}

省略初始條件和遞增表達式

file,err := os.Open("a.txt")
if  err != nil {
    panic(err)
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

省略結束條件,死循環

sum := 0
for i=0;;i++ {
    sum += i
}

全部省略,"快速"死循環,方便並發編程時gorutine互相死循環調用的代碼編寫

for {
    fmt.Println("哈")
}

測試代碼

package main
import (
    "bufio"
    "fmt"
    "os"
    "strconv"
)
/*
常規循環
 */
func normal() {
    sum := 0
    for i := 0; i < 100; i++ {
        sum += i
    }
    fmt.Println(sum)
}
/*
省略初始條件
函數:十進制轉二進制
 */
func convertToBin(n int) string {
    res := ""
    for ; n > 0; n /= 2 {
        tmp := n % 2
        res = strconv.Itoa(tmp) + res
    }
    return res
}
/*
省略初始條件和遞增表達式
函數:逐行輸出文件內容
 */
func printFile(filePath string) {
    file, err := os.Open(filePath)
    if err != nil {
        panic(err)
    }
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }
}

/*
"快速"死循環
 */
func happy() {
    for {
        fmt.Println("哈")
    }
}
func main() {
    normal()
    fmt.Println(convertToBin(3))
    printFile("a.txt")
    //happy()
}

go基礎語法-循環語句