1.基础定义
for语句的条件不需要括号(同if语句) ,golang里的循环只有for,没有while
sum := 0for i=0;i<100;i++ { sum += i }
2.条件省略
for语句的条件可以省略初始条件,结束条件,递增表达式
省略初始条件,相当于while
sum,i := 0,0for ;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 := 0for i=0;;i++ { sum += i }
全部省略,"快速"死循环,方便并发编程时gorutine互相死循环调用的代码编写
for { fmt.Println("哈") }
测试代码
package mainimport ( "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()}
原文出处:https://www.cnblogs.com/lz120792/p/9563248.html