赞
踩
我们先来看题目:
输入样例:78 1.85
输出样例:The BMI is 22.7904
It's normal weight
代码的开头:
- public class Main//定义一个Main类,类名首字母大写,不能用数字开头
- {
- public static void main(String[] args)//main方法
- {
-
- }
-
- }
开头的代码需要有意识注意:class不能漏掉
然后根据题目,代码构成:1.输入体重和身高 2.计算BMI并格式化输出 3.判断bmi范围并输出相应的BMI评价
Java里面手动输入数据,需要一个方法—————Scanner
Scanner是一个类包含了可以手动输入数据的方法,我们要使用一个规定的语句:
import java.util.Scanner;
加在代码的最开头(记得不要忘记分号哦)
代码中间的应用展示
Scanner wtht = new Scanner(System.in);
这句话的意思是 我们创建一个对象 对象类型是Scanner ,这里面的除了wtht可更改,其他可以默认保持不动。
既然创建了对象,我们应该用两个变量来接收这个数据,那为什么是两个呢?因为输入需要我们输入体重和身高。
这里创建变量的语句:
- double weight = wtht.nextDouble();
- double height = wtht.nextDouble();
我们可以根据C语言的知识来大概推测这句话的逻辑:
. 在C语言中是访问结构体的成员变量,这里的就不是结构体了而是一个类,类名叫Scanner。那访问的是类里面的一个函数,因为()在C语言中是函数调用符号。这里具体就不叫函数了,为了这个是方法的调用。
才疏学浅的我,暂时认为:一个叫函数一个叫方法,本质都是一个东西。只是为了区分Java育C语言。
所以这句话可以是:
创建一个变量(double类型)变量名是体重,接收wtht(Scanner类型)里的nextDouble方法赋予的值。
这个值恰好是由我们输入决定。
根据题目所示公式:
BMI = weight / height ^ 2
这个好写:
- double a = height * height;
- double bmi = weight / a;
输出bmi这个涉及print系列语句
System.out.printf("The BMI is %.4f\n",bmi);
System.out.printf
翻译为:系统输出 printf “f” == fomat 格式化输出(为什么格式化输出,这里题目上让我们保留四位小数输出)
系统输出这个格式是固定的。
- if(bmi < 18.5)
- System.out.println("It's underweight");
- else if(bmi >= 18.5 && bmi < 24)
- System.out.println("It's normal weight");
- else if(bmi > 24)
- System.out.println("It's fat");
这个和C类似,就不再分析。
但是这里出现print系列的语句之一:
换行输出:println(" ");
可见,java里面输出什么使用print系列语句少不了前面的”系统输出“
完整代码参考:
- import java.util.Scanner;
-
- public class Main
- {
- public static void main(String[] args)
- {
- Scanner wtht = new Scanner(System.in);
- double weight = wtht.nextDouble();
- double height = wtht.nextDouble();
- double a = height * height;
- double bmi = weight / a;
- System.out.printf("The BMI is %.4f\n",bmi);
- if(bmi < 18.5)
- System.out.println("It's underweight");
- else if(bmi >= 18.5 && bmi < 24)
- System.out.println("It's normal weight");
- else if(bmi > 24)
- System.out.println("It's fat");
-
- }
-
-
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。