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")
}
网友评论