golang 基础(6)循环

作者: zidea | 来源:发表于2019-03-16 16:33 被阅读15次
    fi3udlyd2x4thzj0ocke.jpg

    循环语句

    • 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

    相关文章

      网友评论

        本文标题:golang 基础(6)循环

        本文链接:https://www.haomeiwen.com/subject/wxusmqtx.html