我无法弄清楚要放什么,因为我需要用类创建计算器。任何帮助将不胜感激。
import java.util.*;
public class BMI
{
public static void main(String[] args)
{
heightInInches();
weightInPounds();
outputBMI();
}
public static void heightInInches()
{
Scanner input = new Scanner(System.in);
System.out.println("What is your height in feet between 2 and 7? " );
int feet = input.nextInt();
while (feet < 2 || feet > 7)
{
System.out.print("Retry between 2 and 7: ");
feet = input.nextInt();
}
System.out.println("How many inches between 0 and 11? " );
int inches = input.nextInt();
while (inches < 0 || inches > 11)
{
System.out.print("Retry between 0 and 11: ");
inches = input.nextInt();
}
int actualHeight = (feet * 12) + inches;
System.out.println("You are this tall in inches: " + actualHeight);
}
public static int weightInPounds()
{
Scanner input = new Scanner(System.in);
System.out.println("What is your weight in stone between 3 and 30? " );
int stone = input.nextInt();
while (stone < 3 || stone > 30)
{
System.out.print("Retry between 3 and 30: ");
stone = input.nextInt();
}
System.out.println("How many pounds between 0 and 13? " );
int pounds = input.nextInt();
while (pounds < 0 || pounds > 13)
{
System.out.print("Retry between 0 and 13: ");
pounds = input.nextInt();
}
int actualWeight =(stone * 14) + pounds;
System.out.println("You are this heavy in pounds: " + actualWeight);
return actualWeight;
}
public static void outputBMI(int heightInInches, int weightInPounds)
{
double BMI = (weightInPounds * 703) / (heightInInches * heightInInches);
System.out.println("This is your BMI: " + BMI);
}
}
这就是outputBMI();我不太确定我应该放在这些括号中,因为没有它可以放在那里而不会给我带来错误。
答案 0 :(得分:1)
您没有将任何参数传递给 outputBMI 方法。
同时考虑使用Double而不是Integers,这样您就可以减少问题:)
import java.util.*;
public class Main
{
public static void main(String[] args)
{
int height = heightInInches();
int weight = weightInPounds();
outputBMI(height, weight);
}
public static int heightInInches()
{
Scanner input = new Scanner(System.in);
System.out.println("What is your height in feet between 2 and 7? " );
int feet = input.nextInt();
while (feet < 2 || feet > 7)
{
System.out.print("Retry between 2 and 7: ");
feet = input.nextInt();
}
System.out.println("How many inches between 0 and 11? " );
int inches = input.nextInt();
while (inches < 0 || inches > 11)
{
System.out.print("Retry between 0 and 11: ");
inches = input.nextInt();
}
int actualHeight = (feet * 12) + inches;
System.out.println("You are this tall in inches: " + actualHeight);
return actualHeight;
}
public static int weightInPounds()
{
Scanner input = new Scanner(System.in);
System.out.println("What is your weight in stone between 3 and 30? " );
int stone = input.nextInt();
while (stone < 3 || stone > 30)
{
System.out.print("Retry between 3 and 30: ");
stone = input.nextInt();
}
System.out.println("How many pounds between 0 and 13? " );
int pounds = input.nextInt();
while (pounds < 0 || pounds > 13)
{
System.out.print("Retry between 0 and 13: ");
pounds = input.nextInt();
}
int actualWeight =(stone * 14) + pounds;
System.out.println("You are this heavy in pounds: " + actualWeight);
return actualWeight;
}
public static void outputBMI(int heightInInches, int weightInPounds)
{
double BMI = (weightInPounds * 703) / (heightInInches * heightInInches);
System.out.println("This is your BMI: " + BMI);
}
}
在此处试试:https://repl.it/E5fv/0
答案 1 :(得分:0)
以面向对象的方式。创建三个类Weight,Height和BMI是有意义的。见下文。这种方法将各种转换封装为英寸和磅到BMI公式。
import java.util.*;
class Weight {
static private int STONE_TO_POUNDS = 14;
private Integer weightInPounds;
void setWeight(int stone, int pounds) {
weightInPounds = (stone * STONE_TO_POUNDS) + pounds;
}
Integer getWeightInPounds() {
return weightInPounds;
}
}
class Height {
static private int FEET_TO_INCHES = 12;
private Integer heightInInches;
void setHeight(int feet, int inches) {
heightInInches = (feet * FEET_TO_INCHES) + inches;
}
Integer getHeightAsInches() {
return heightInInches;
}
}
class BMI {
private Height height;
private Weight weight;
void setHeight(Height height) {
this.height = height;
}
void setWeight(Weight weight) {
this.weight = weight;
}
double calculate() {
return (weight.getWeightInPounds() * 703) / (height.getHeightAsInches().intValue() * height.getHeightAsInches().intValue());
}
}
public class Main
{
public static void main(String[] args)
{
BMI bmi = new BMI();
bmi.setHeight(getHeight());
bmi.setWeight(getWeight());
outputBMI(bmi);
}
public static Height getHeight()
{
Height height = new Height();
Scanner input = new Scanner(System.in);
System.out.println("What is your height in feet between 2 and 7? " );
int feet = input.nextInt();
while (feet < 2 || feet > 7)
{
System.out.print("Retry between 2 and 7: ");
feet = input.nextInt();
}
System.out.println("How many inches between 0 and 11? " );
int inches = input.nextInt();
while (inches < 0 || inches > 11)
{
System.out.print("Retry between 0 and 11: ");
inches = input.nextInt();
}
height.setHeight(feet, inches);
System.out.println("You are this tall in inches: " + height.getHeightAsInches());
return height;
}
public static Weight getWeight()
{
Weight weight = new Weight();
Scanner input = new Scanner(System.in);
System.out.println("What is your weight in stone between 3 and 30? " );
int stone = input.nextInt();
while (stone < 3 || stone > 30)
{
System.out.print("Retry between 3 and 30: ");
stone = input.nextInt();
}
System.out.println("How many pounds between 0 and 13? " );
int pounds = input.nextInt();
while (pounds < 0 || pounds > 13)
{
System.out.print("Retry between 0 and 13: ");
pounds = input.nextInt();
}
weight.setWeight(stone, pounds);
System.out.println("You are this heavy in pounds: " + weight.getWeightInPounds());
return weight;
}
public static void outputBMI(BMI bmi)
{
System.out.println("This is your BMI: " + bmi.calculate());
}
}