前言
经过前面的基础学习后,左羊想借着上一篇的BMI指数计算来学习下Golang的控制台输入与条件判断两块内容。
示例提要
BMI公式
这个公式是用来计算BMI指数的。下面这个表格是BMI数值与健康状态的对照表。
BMI对照表
数值 | 健康状态 |
18.5-24.9 kg/m^2 | 正常 |
25-27.9 kg/m^2 | 超重 |
≥28 kg/m^2 | 肥胖 |
<18.5kg m^2 | 消瘦 |
第一部分 控制台输入
主要使用fmt、bufio包,由于咱们需要输入的是确定数据类型的一个或多个值,所以使用fmt包下的Scan(&value)函数.
单个字符串输入
// 单个字符串输入
package main
import "fmt"
func main() {
fmt.Println("请输入String类型的数据:")
var test_str string
fmt.Scan(&test_str)
fmt.Println("你的输入是:",test_str)
}
多种类型数据
// 多种类型数据
package main
import "fmt"
func main() {
// float64类型
fmt.Println("请输入float64类型的数据:")
var test_float float64
fmt.Scan(&test_float)
fmt.Println("你的输入是:",test_float)
// int类型
fmt.Println("请输入int类型的数据:")
var test_int int
fmt.Scan(&test_int)
fmt.Println("你的输入是:",test_int)
// bool类型
fmt.Println("请输入bool类型的数据:")
var test_bool bool
fmt.Scan(&test_bool)
fmt.Println("你的输入是:",test_bool)
}
BMI指数计算器
package main
import "fmt"
func main() {
fmt.Println("请输入你的身高(m):")
var height float64
fmt.Scan(&height)
fmt.Println("你的身高(m)是:",height)
fmt.Println("请输入你的体重(KG):")
var weight float64
fmt.Scan(&weight)
fmt.Println("你的体重(KG)是:",weight)
var bmi_num float64 = weight/(height*height)
fmt.Println("你的BMI指数是:",bmi_num) // 控制台输出BMI指数
}
第二部分 条件控制
大部分编程的语言条件控制都是由一个if关键字加上一个条件公式再加上一个条件代码块组成的,当然Golang也是一样的。
package main
import "fmt"
func main() {
if true {
fmt.Println("条件为True时执行:")
}
if false {
fmt.Println("条件为false时不执行:")
}
}
最后让我们来完善BMI计算器,让它可以实现通过控制台输入身高与体重后,自动算出BMI数字并提示健康状态。
package main
import "fmt"
func main() {
fmt.Println("请输入你的身高(m):")
var height float64
fmt.Scan(&height)
fmt.Println("你的身高(m)是:",height)
fmt.Println("请输入你的体重(KG):")
var weight float64
fmt.Scan(&weight)
fmt.Println("你的体重(KG)是:",weight)
var bmi_num float64 = weight/(height*height)
fmt.Println("你的BMI指数是:",bmi_num) // 控制台输出BMI指数
var bmi_status string
if bmi_num < 18.5 {
bmi_status = "消瘦"
}else if bmi_num > 18.5 && bmi_num < 24.9 {
bmi_status = "正常"
}else if bmi_num > 25 && bmi_num < 27.9 {
bmi_status = "超重"
}else if bmi_num > 28 {
bmi_status = "肥胖"
}
fmt.Println("你的BMI健康状态为:",bmi_status)
}
感谢你的观看YES!