JAVA基础语法编程详解---三目运算符

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()语句

java 复制代码
//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("偏瘦");
        }

思路二: 使用三目运算符

java 复制代码
//write your code here......
        double bmi = weight / (height * height);
        System.out.println(bmi < 18.5 ? "偏瘦" : (bmi < 20.9 ? "苗条" : (bmi < 24.9 ? "适中" :"偏胖")));

代码实现

思路一: 使用if...else()语句

java 复制代码
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("偏瘦");
        }

    }
}

思路二: 使用三目运算符

java 复制代码
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 ? "适中" :"偏胖")));

    }
}

运行结果

总结---三目运算符

三目运算基本格式:

java 复制代码
 A ? TRUEA : FALSEB 
  • 其中A为任意表达式,要求是必须返回一个boolean类型的值,当A值为true时运行TRUEA,当A值为false时运行FALSEB,其中TRUEA和FALSEB必须最终返回一个值。
  • 三目运算符可以看作是if-else语句的简化版本:
java 复制代码
if(A){
  TRUEA
}else{
  FALSEB
}

等同于

java 复制代码
A ? TRUEA : FALSEB

但三目运算符必然返回一个值,所以我们也可以把其看作方法的简化:

java 复制代码
public int isA(boolean A){
  if(A){
    return TRUEA;
  }else{
    return FALSEB;
  }
}

同if语句一样,三目运算符也可以进行嵌套,无论是条件表达式还是返回的值。

  • 比如结果嵌套为另外的三目运算:
java 复制代码
A ? ( B ? TRUEB : FALSEB) : FALSEA

A表达式先计算得到boolean类型结果。之后如果为真,

则进行(B ? TRUEB : FALSEB)运算,以这样的格式可以达到if--else-if--else 语句的效果。

相关推荐
超级晒盐人13 分钟前
归雁思维:解锁自然规律与人类智慧的桥梁
经验分享·语言模型·学习方法·微信公众平台·教育电商
越来越无动于衷1 小时前
基于 JWT 的登录验证功能实现详解
java·数据库·spring boot·mysql·mybatis
飛_5 小时前
解决VSCode无法加载Json架构问题
java·服务器·前端
朝朝又沐沐7 小时前
算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现
开发语言·数据结构·c++·算法·链表
木棉软糖7 小时前
一个MySQL的数据表最多能够存多少的数据?
java
程序视点8 小时前
Java BigDecimal详解:小数精确计算、使用方法与常见问题解决方案
java·后端
愿你天黑有灯下雨有伞8 小时前
Spring Boot SSE实战:SseEmitter实现多客户端事件广播与心跳保活
java·spring boot·spring
薰衣草23338 小时前
一天两道力扣(6)
算法·leetcode
剪一朵云爱着8 小时前
力扣946. 验证栈序列
算法·
遇见尚硅谷8 小时前
C语言:*p++与p++有何区别
c语言·开发语言·笔记·学习·算法