前言

经过前面的基础学习后,左羊想借着上一篇的BMI指数计算来学习下Golang的控制台输入与条件判断两块内容。

示例提要

BMI公式

体质指数(BMI)=体重(kg)÷身高^2(m)

这个公式是用来计算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)函数.

  1. 单个字符串输入

// 单个字符串输入
package main
import "fmt"
func main() {
fmt.Println("请输入String类型的数据:")
var test_str string
fmt.Scan(&test_str)
fmt.Println("你的输入是:",test_str)
}

  1. 多种类型数据

// 多种类型数据
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)
}

  1. 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!