我有一个课堂项目,我必须要求用户输入体重指数和体表面积计算器。我有一个if else语句,我需要放入while循环。我需要让它通过,如果用户输入'w',则调高权重变量和高度'h'。此外,如果用户输入'q'退出程序。我需要有关如何创建while循环的帮助。
import java.util.*;
public class Assignment2 {
public static void main(String[] args) {
//Scanner
Scanner stdIn = new Scanner(System.in);
//Variables
final double METERS_TO_CM = 100; // The constant to convert meters to centimeters
final double BSA_CONSTANT = 3600; // The constant to divide by for bsa
double bmi; // Body Mass Index
double weight; // Weight in kilograms
double height; // Height in meters
String classification; // Classifies the user into BMI categories
double bsa; // Body surface area
char quit = stdIn.nextLine().charAt(0);
System.out.print("Welcome to the BMI and BSA Calculator to begin enter weight in kilograms.");
weight = stdIn.nextDouble();
System.out.print("Enter height in meters: ");
height = stdIn.nextDouble();
bmi = weight/(height*height);
while (quit != 'q');
{
if (bmi < 18.5)
{
classification = "Underweight";
}
else if (bmi < 25)
{
classification = "Normal";
}
else if (bmi < 30)
{
classification = "Overweight";
}
else
{
classification = "Obese";
}
System.out.println("Your classification is: " + classification);
bsa = Math.sqrt(((height*METERS_TO_CM)*weight)/BSA_CONSTANT);
System.out.printf("BMI: %.1f\n", bmi);
System.out.printf("BSA: %.2f\n", bsa);
}
}
}
答案 0 :(得分:1)
这是基本逻辑。
String inp = ask the user for input;
while(!inp.equalsIgnoreCase("q")){
if(inp is w){
}else{
if(inp is h){
}
}
inp = ask user for another input;
}
答案 1 :(得分:0)
我假设您在此循环之外有变量,以便您可以在任何地方访问它们。所以你会有这样的事情:
while(true)//所以你的循环将永远持续
此处提示用户输入上面给出的三个选项之一,然后输入一个临时变量。例如,
scanner sc=new Scanner(params)
choice=s.getnext()
//或等效方法
提示输入值
使用if语句来查看要修改的变量,基于上面“选择”的char值
如果用户输入q,请使用return
或break
语句中断while循环。否则,我相信你可以弄清楚剩下的。
答案 2 :(得分:0)
好吧,你的while循环是正确的,所以你的问题可能实际上并不是如何创建while循环,而是如何让你的循环执行你想要的逻辑。
虽然您可以在循环之前和每个循环结束时简单地提示,但这仅适用于简单问题。既然你一次处理两个输入并运行if语句,我建议使用一个标志(一个控制是否保持循环的布尔值)
boolean keepLooping = true;
while(keepLooping)
{
String userInput = //get input from user here
if(userInput.equals(//whatever))
{
//do something
}
else if(userInput.equals(//whatever else))
{
//more stuff
}
else if(userInput.equals("q")) //the quitting condition!
{
keepLooping = false; //this tells our program to stop looping
}
}
//we reached the end of the loop and keepLooping == false, so program will exit
在其他if / else块中,您可以完成所需的所有BMI内容。