6.判断体重指数
题目描述
- 描述
体重指数 = 体重 (kg) / ( 身高 (m) × 身高 (m) ),小于18.5属于偏瘦,介于18.5和20.9之间(左闭右开)属于苗条,介于20.9和24.9之间(左闭右闭)属于适中,超过24.9属于偏胖。
下面由你来编写一段逻辑,算出输入了身高和体重的用户的体重指数,并返回他们的身材状态。(体重指数请使用double类型)
- 输入描述: 用户的身高(m)和用户的体重(kg)
- 输出描述: 体重指数代表的用户身材状态
- 示例
输入: 1.75 62.5
输出: 苗条
解题思路
同5.计算商场折扣思路一样,使用if...else()语句
或使用switch...case()
思路一: 使用if...else()语句
//write your code here......
double bmi = weight / (height * height);
if (bmi > 24.9) {
System.out.print("偏胖");
return;
} else if (bmi >= 20.9) {
System.out.print("适中");
return;
} else if (bmi >= 18.5) {
System.out.print("苗条");
return;
} else {
System.out.print("偏瘦");
}
思路二: 使用三目运算符
//write your code here......
double bmi = weight / (height * height);
System.out.println(bmi < 18.5 ? "偏瘦" : (bmi < 20.9 ? "苗条" : (bmi < 24.9 ? "适中" :"偏胖")));
代码实现
思路一: 使用if...else()语句
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double height = scanner.nextDouble();
double weight = scanner.nextDouble();
//write your code here......
double bmi = weight / (height * height);
if (bmi > 24.9) {
System.out.println("偏胖");
return;
} else if (bmi >= 20.9) {
System.out.println("适中");
return;
} else if (bmi >= 18.5) {
System.out.println("苗条");
return;
} else {
System.out.println("偏瘦");
}
}
}
思路二: 使用三目运算符
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double height = scanner.nextDouble();
double weight = scanner.nextDouble();
//write your code here......
double bmi = weight / (height * height);
System.out.println(bmi < 18.5 ? "偏瘦" : (bmi < 20.9 ? "苗条" : (bmi < 24.9 ? "适中" :"偏胖")));
}
}
运行结果
总结—三目运算符
三目运算基本格式:
A ? TRUEA : FALSEB
- 其中A为任意表达式,要求是必须返回一个boolean类型的值,当A值为true时运行TRUEA,当A值为false时运行FALSEB,其中TRUEA和FALSEB必须最终返回一个值。
- 三目运算符可以看作是if-else语句的简化版本:
if(A){
TRUEA
}else{
FALSEB
}
等同于
A ? TRUEA : FALSEB
但三目运算符必然返回一个值,所以我们也可以把其看作方法的简化:
public int isA(boolean A){
if(A){
return TRUEA;
}else{
return FALSEB;
}
}
同if语句一样,三目运算符也可以进行嵌套,无论是条件表达式还是返回的值。
- 比如结果嵌套为另外的三目运算:
A ? ( B ? TRUEB : FALSEB) : FALSEA
A表达式先计算得到boolean类型结果。之后如果为真,
则进行(B ? TRUEB : FALSEB)运算,以这样的格式可以达到if–else-if–else 语句的效果。