我们需要编写一个程序,允许学生输入他们的分数,并告诉他们是否通过。如果用户输入的百分数大于或等于60,我们的程序需要给出一个响应,否则的话将给出不同的响应。

需要做的第一件事是允许用户输入分数。我们希望他们输入一个数字并按回车键,我们将把他们输入的数字存在一个变量中。让我们添加一些代码来处理这个问题。

import (
"bufio"
"fmt"
"os"
"log"
)
func main(){
fmt.Print("enter a grade: ")
reader :=bufio.NewReader(os.Stdin)
input , err := reader.ReadString('\n')
if err != nil {
log.Fatal(err) //报告错误并停止程序
}
fmt.Println(input)
input = strings.TrimSpace(input)
grade,err:=strconv.ParseFloat(input,64)
if err !=nil {
log.Fatal(err)
}
if grade >=60 {
status :="pass"
}else{
status :="fail"
}
}

首先,我们需要让用户知道需要输入某些东西,所以我们使用fmt.Print函数来显示一个提示符。(与Println函数不同,Print在打印完信息后不会跳到新的终端行,这样我们就可以将提示和用户的输入保持在同一行上。)

接下来,我们需要一种从程序的标准输入中读取(接收和存储)输入的方法,所有的键盘输入都使用标准输入。

reader := bufio.NewReader(os.Stdin)将bufio.Reader保存在reader变量中。

为了实际获得用户的输入,我们调用Reader的ReadString方法。ReadString方法需要一个带有rune(字符)的参数来标记输入的结束。我们想要读取用户输入的所有内容,直到他们按下<Enter>,所以我们给ReadString一个换行符。后面检测错误,如果有错误就停止程序。

再往下是把输入的数字去掉空格和换行符,转换成float64类型,如果大与60就付给变量status为pass,否则就为fail