前言
经过前面的基础学习后,左羊想借着上一篇的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 mainimport "fmt"func main() {fmt.Println("请输入String类型的数据:")var test_str stringfmt.Scan(&test_str)fmt.Println("你的输入是:",test_str)}

多种类型数据
// 多种类型数据package mainimport "fmt"func main() {// float64类型fmt.Println("请输入float64类型的数据:")var test_float float64fmt.Scan(&test_float)fmt.Println("你的输入是:",test_float)// int类型fmt.Println("请输入int类型的数据:")var test_int intfmt.Scan(&test_int)fmt.Println("你的输入是:",test_int)// bool类型fmt.Println("请输入bool类型的数据:")var test_bool boolfmt.Scan(&test_bool)fmt.Println("你的输入是:",test_bool)}

BMI指数计算器
package mainimport "fmt"func main() {fmt.Println("请输入你的身高(m):")var height float64fmt.Scan(&height)fmt.Println("你的身高(m)是:",height)fmt.Println("请输入你的体重(KG):")var weight float64fmt.Scan(&weight)fmt.Println("你的体重(KG)是:",weight)var bmi_num float64 = weight/(height*height)fmt.Println("你的BMI指数是:",bmi_num) // 控制台输出BMI指数}

第二部分 条件控制
大部分编程的语言条件控制都是由一个if关键字加上一个条件公式再加上一个条件代码块组成的,当然Golang也是一样的。
package mainimport "fmt"func main() {if true {fmt.Println("条件为True时执行:")}if false {fmt.Println("条件为false时不执行:")}}

最后让我们来完善BMI计算器,让它可以实现通过控制台输入身高与体重后,自动算出BMI数字并提示健康状态。
package mainimport "fmt"func main() {fmt.Println("请输入你的身高(m):")var height float64fmt.Scan(&height)fmt.Println("你的身高(m)是:",height)fmt.Println("请输入你的体重(KG):")var weight float64fmt.Scan(&weight)fmt.Println("你的体重(KG)是:",weight)var bmi_num float64 = weight/(height*height)fmt.Println("你的BMI指数是:",bmi_num) // 控制台输出BMI指数var bmi_status stringif 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!
