(头哥)Java程序设计------if-else 语句

本文介绍了如何利用if-else语句实现2×2线性方程组的求解,并结合Cramer规则,同时探讨了如何根据BMI指标判断肥胖并提供减肥建议。编程要求包括接收输入、计算BMI、判断肥胖并输出减肥建议。
摘要由CSDN通过智能技术生成

第1关:2 ✖ 2 线性方程求解

任务描述

本关任务:掌握使用 if-else 语句实现简单的双分支的控制结构,并编写程序求解2×2线性方程。

相关知识

为了完成本关任务,你需要掌握:

  1. if-else 语句;
  2. cramer 规则。
if-else 语句

相信你已经学会使用 if 语句编写简单的控制结构了,即“满足条件便执行”。但现实情况中,还有一些情形用 if 语句描述起来有些“乏力”,因为对于“不满足条件”的情形,if 语句是不管的。

Java 的 if-else 语句就弥补了这样的“空缺”,它提供了一种双分支的控制结构,其基本写法如下:

  1. if (布尔表达式){
  2. 布尔表达式为其时执行的语句(组)1;
  3. }
  4. else {
  5. 布尔表达式为假时执行的语句(组)2;
  6. }

与 if 语句不同的是,当布尔表达式值为 false 的时候, if 语句什么也不做,而 if-else 语句会执行 else 分支中的语句(组)。

图 1. if-else 语句控制结构

if-else 语句的控制语义是,“满足条件时,执行动作一,否则执行动作二”。 以下给出 if-else 语句的实例:

  1. /** 代码清单 1 */
  2. if(number < 0){
  3. System.out.println(0-number);
  4. } else {
  5. System.out.println(number);
  6. }

代码清单 1展示了使用 if-else 语句输出绝对值的功能。虽然这个功能也能仅靠 if 语句来实现,但毫无疑问使用 if-else 语句更简单、更直观、更符合客观逻辑。

cramer 规则

本关的任务是求解 2 元线性方程组,因此简单讲解下求解的方法: cramer 规则: 对于 2×2 线性方程:

ax+by=e

cx+dy=f

根据 cramer 规则,其解为:

x=(ed−bf)/(ad−bc​)

y=(af−ec​)/(ad−bc)

ad−bc=0 时,无解。

相信,你心中已经有了如何使用 if-else 语句实现 cramer 规则,来求解线性方程的方案。那么接下来,认真查看具体的编程要求吧!

编程要求

根据提示,在右侧编辑器 Begin-End 区域补充代码,实现求解二元线性方程组的功能。二元一次线性方程组的表达式如下所示:

ax+by=e

cx+dy=f

具体编程要求如下:

  • 依次从后台接收double类型的参数 a、b、c、d、e、f

  • 计算相应的解x, y并依次输出,两个解各占一行,结果保存小数点后 1 位;

  • 如果无解,则输出字符串ops

  • 输出的最后多一个换行符。

测试说明

平台会对你编写的代码进行测试:

测试输入:1 2 3 4 5 6; 预期输出:

  1. -4.0
  2. 4.5

代码如下:

package step1;
import java.util.Scanner;

public class Linear22 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        double a, b, c, d, e, f;
        double x;
        double y;

        a = input.nextDouble();
        b = input.nextDouble();
        c = input.nextDouble();
        d = input.nextDouble();
        e = input.nextDouble();
        f = input.nextDouble();
        input.close();

        // 请在指定位置填写代码。
        /********* Begin *********/
        double hh=a*d-b*c;
        if(hh==00)
        {
            System.out.println("ops");
        }
        else
        {
            x=(e*d-b*f)/hh;
            x=Math.round(x*10)/10.0;
            System.out.println(x);
            y=(a*f-e*c)/hh;
            y=Math.round(y*10)/10.0;
            System.out.println(y);
        }

        /********* End *********/

    }
}

第2关:检测肥胖

任务描述

本关任务:巩固 if-else 语句的使用,编写一个程序,根据身高、体重判断是否肥胖。

相关知识

为了完成本关任务,你需要掌握一定的背景知识:

  1. BMI指标;
  2. 问题描述。
BMI指标

BMI 又叫身体健康指数, 针对 20 岁及以上的人群, 是根据其身高(米)和体重(千克)计算出一个数值, 依此数值来衡量身体健康状况。其计算方式如下:

BMI=weight/height^2

其中height是身高(米), weight是体重(千克)。

问题描述

本关的任务是,判断是否肥胖,而判断的依据是 BMI 指数:

  • “ BMI 指数大于 30 时,则认定为肥胖,否则不认定为肥胖。”

因此,本关的任务是根据身高、体重,计算出 BMI 指数从而判断是否肥胖。

当然本关问题并没有这么简单,还需要实现额外的功能:

  • “如果判断为肥胖,请提示体重至少减少多少才能摆脱肥胖。”

编程要求

根据提示,在右侧编辑器 Begin-End 区域补充代码,编写一个根据身高体重,判断是否肥胖的程序。具体要求如下:

  • 依次从后台接收两个double类型的数值,先后表示为身高(单位:米)和体重(单位:千克);

  • 首先判断是否肥胖,如果肥胖则输出一行字符串yes,否则输出一行字符串no,结尾换行;

  • 如果判断为肥胖,则接着输出至少减重的重量(单位:千克),结果保留整数,结尾换行。

测试说明

平台会对你编写的代码进行测试:

测试输入:50 1.67; 预期输出:

  1. no

测试输入:80 1.6 预取输出:

  1. yes
  2. 4

提示: 浮点数上取整,以及输出浮点数整数部分的方法:

  1. double x = 3.447;
  2. double y = Math.ceil(a);
  3. System.out.println(String.formate("%.0f", y));

输出:

  1. 4

代码如下:
 

package step2;
import java.util.Scanner;

public class BMI {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        double weight = input.nextDouble();
        double height = input.nextDouble();

        //请在指定位置填写代码。
        /********* Begin *********/
        double bmi=(weight/(height*height));
        if(bmi>30){
            System.out.println("yes");

        int jz = (int)Math.ceil(weight-(30*height*height));
        System.out.println(jz);
    }else{
        System.out.println("no");
    }

        /********* End *********/
    }
}

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失棉的羊 .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值