go基础语法-循环语句
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()
}