golang 基础(6)循环

zidea · · 740 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:zidea

查看原文:golang 基础(6)循环

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

740 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传