1.基礎定義
for語句的條件不需要括號(同if語句) ,golang里的循環只有for,沒有while
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()
}
