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()
}

posted @ 2018-08-30 23:05  遥望1992  阅读(1054)  评论(0编辑  收藏  举报