• 欢迎访问 YZBTDIY!
  • 本站启用 TLS 加密!
  • 站点优化使用 WPJAM 的插件,万分感谢!

galang 分支语句

每日一GO admin 3周前 (05-30) 33次浏览 0个评论

code

package main

import (
    "fmt"
    "io/ioutil"
)

//if else 分支,读取文件内容,并输出
func readfile() {
    const filename = "abc.txt"
    // contents, err := ioutil.ReadFile(filename)
    // if err != nil {
    //  fmt.Println(err)
    // } else {
    //  fmt.Printf("%s\n", contents)
    // }
    if contents, err := ioutil.ReadFile(filename); err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%s\n", contents)
    }

}

//case switch 分支,判断成绩,panic 中断程序执行并返回错误信息
func grade(score int) string {
    g := ""
    switch {
    case score < 0 || score > 100:
        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"
        //default:
        //panic(fmt.Sprintf("Wrong score: %d", score))
    }
    return g
}

func eval(a, b int, op string) int {
    var result int
    switch op {
    case "+":
        result = a + b
    case "-":
        result = a - b
    case "*":
        result = a * b
    case "/":
        result = a / b
    case "%":
        result = a % b
    default:
        panic("unsupported operator:" + op)
    }
    return result
}

func transferParameters() {
    fmt.Println(
        grade(59),
        grade(60),
        grade(82),
        grade(99),
        grade(100),
    )
    fmt.Println(
        eval(2019, 5, "+"),
        eval(2019, 5, "-"),
        eval(2019, 5, "*"),
        eval(2019, 5, "/"),
        eval(2019, 5, "%"),
    )
}

func main() {
    readfile()
    transferParameters()
}

abc.txt

hello
world
hello
golang

result

hello
world
hello
golang
F C B A A
2024 2014 10095 403 4

若最后 grade 值为 101 会中断程序执行并返回 panic 错误信息

hello
world
hello
golang
panic: Wrong score: 101

YZBTDIY , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:galang 分支语句
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址