循环语句
- for 的条件里不需要括号
- for 的条件里可以省略初始条件,结束条件,递增表达式
我们进行一点小小算法将10进制转为2进制
12 - 首先对 2 取模 12 对 2 取模为 0
12 -> 0 - 然后用 12 除以 2 为 6
- 接下来再用 6 对 2 取模为 0
12 -> 00 - 然后再用 6 除以 2 为 3
- 3 再对 2 取模为 1
12 -> 001 - 3 在除以 2 为 1
- 1 对 2 取模为 1
12 -> 0011 - 1 除以 2 为 0 这停止向下进行了
最后将 0011 翻过来就是 12 转为 2 进制的值
func convertToBin(n int) string {
result := ""
for ; n >0; n /= 2{
lsb := n % 2
result = strconv.Itoa(lsb) + result
}
return result
}
- 没有初始条件
- 用 strconv.Itoa 将 lsb 转为字符串和 reuslt 字符串连接
在 go 语言中 for 可以没有递增条件和初始条件,所以在 go 语言中可以用 for 来代替 while,所以 go 语言中就没有必要有 while 语句。
import (
"fmt"
"strconv"
"os"
"bufio"
)
func readFile(filename string){
file, err := os.Open(filename)
if err != nil{
panic(err)
}
scanner := bufio.NewScanner(file)
for scanner.Scan(){
fmt.Println(scanner.Text())
}
}
而且在 go 语言中的 for 循环也可以没有终止条件,这样就会一直循环下去。
func nonstop(){
for{
fmt.Println("runnning")
}
}
在 go 语言中对一些并发的处理都可以用到没有结束条件的 for 循环。这样无限循环在 go 语言中是常见的。所以设计写起来很简单。
Golang1.png
网友评论