【GoLang】通过BMI指数学习控制台输入与条件控制

举报
左羊 发表于 2022/06/09 21:06:24 2022/06/09
【摘要】 前言经过前面的基础学习后,左羊想借着上一篇的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消...

前言

经过前面的基础学习后,左羊想借着上一篇的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!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。