欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go学习笔记03-结构控制

程序员文章站 2022-04-09 18:53:38
[toc] 条件语句 条件语句用 if 关键字来判定条件,如: for省略初始条件(及递增条件), 相当于while语句 初始条件、结束条件、递增表达式都省略是是一个死循环 Go中没有while语句 ......

目录

条件语句

条件语句用 if 关键字来判定条件,如:

    func bounded(v int) int {
        if v > 100 {
            return 100
        } else if v < 0 {
            return 0
        } else {
            return v
        }
    }

判断条件 不用圆括号 括起来

判定条件里可以赋值,赋值变量的作用域仅限于这个if语句块里。

switch语句

func grade(score int) string {
    g := ""
    switch {
    case score < 0 || score > 100:
        //当程序出错时,panic会中断程序运行
        panic(fmt.sprintf(
            "wrong score: %d", score))
    case score < 60:
        g = "f"
    case score < 80:
        g = "c"
    case score < 90:
        g = "b"
    case score <= 100:
        g = "a"
    }
    return g
}

go语言中case不用break结束。
switch后可以没有条件,在case后进行条件判定。

循环语句

代码示例:

    sum := 0
    for i:= 1;i <= 100 ;i++ {
        sum += i
    }
  • for语句的条件也不需要用括号括起来
  • 可以 省略 初始条件、结束条件、递增表达式
package main

import(
    "bufio"
    "fmt"
    "os"
    "strconv"
)

func converttobin(n int) string {
    bin := ""
    //省略初始条件,相当于while语句
    for ; n > 0; n /= 2{
        lsb := n % 2
        bin = strconv.itoa(lsb) + bin
    }
    return bin
}

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

func main() {
    fmt.println(converttobin(13),
        converttobin(5))

    readfile("file.txt")
}
  • for省略初始条件(及递增条件),相当于while语句
  • 初始条件、结束条件、递增表达式都省略是是一个死循环
  • go中没有while语句