美文网首页
golang-循环、判断

golang-循环、判断

作者: 爱吃豆包 | 来源:发表于2019-12-17 20:10 被阅读0次
package main

import (
    "bufio"
    "fmt"
    "io/ioutil"
    "os"
    "strconv"
)

// 判断成绩
func grade(score int) string  {
    g := ""
    switch {
        case score < 0 || score > 100:
            // 抛出一个异常
            panic(fmt.Sprintf("输入的成绩%d不符合!",score))
        case score < 60:
            g = "F"
        case score < 80:
            g = "C"
        case score < 90:
            g = "B"
        case score <= 100:
            g = "A"
    }

    return g
}

// 文件
func file()  {
    const filename = "a.txt"
    contents, err := ioutil.ReadFile(filename)

    // 写法一
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%s\n",contents)
    }

    // 写法二
    // 如果这样的写法,c 的作用域就只能在if里面使用, 之外的地方用不了
    if c, e := ioutil.ReadFile(filename); err != nil {
        fmt.Println(e)
    } else {
        fmt.Printf("%s\n",c)
    }
}

// 数值转换, 为二进制
func convertToBin(n int) string {
    result := ""
    for ; n > 0; n /= 2  {
        lsb := n % 2
        // strconv.Itoa(lsb) 是数值装换
        result = strconv.Itoa(lsb) + result
    }

    return result
}

// 读取文件
func printFile(filename string)  {
    file, err := os.Open(filename)
    if err != nil {
        panic(err)
    }

    // 一行行的读取
    scanner := bufio.NewScanner(file)
    // go语言的循环, 只有有一个可以中断的条件就可以了
    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }

    // for 死循环, 只需要这么简单
    //for  {
    //  fmt.Println("abc")
    //}

}

func main() {
    file()
    fmt.Println(
        grade(1),
        grade(78),
    )
    fmt.Println(convertToBin(13))
    printFile("a.txt")

}

相关文章

网友评论

      本文标题:golang-循环、判断

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