Java-如果用户输入无效的输入,我如何返回异常?
说到编码,我完全是个初学者。我目前正在当地社区学院上编程课。我们被指派创建一个计算用户BMI(体重指数)的程序 我已经设法创建了程序的基本结构,用户在其中输入体重和身高,并将其计算到BMI中。然而,我正在努力创建一个标准 其中显示以下任何无效输入:Java-如果用户输入无效的输入,我如何返回异常?,java,calculator,jgrasp,Java,Calculator,Jgrasp,说到编码,我完全是个初学者。我目前正在当地社区学院上编程课。我们被指派创建一个计算用户BMI(体重指数)的程序 我已经设法创建了程序的基本结构,用户在其中输入体重和身高,并将其计算到BMI中。然而,我正在努力创建一个标准 其中显示以下任何无效输入: 高度不小于48英寸 高度不超过80英寸 重量不小于75磅 重量不超过300磅 示例交互 请以英寸为单位输入您的身高:20 很抱歉,您输入的高度无效 请以英寸为单位输入您的身高:62 请以磅为单位输入您的体重:x 对不起,您没有输入磅数 我有一个
- 高度不小于48英寸
- 高度不超过80英寸
- 重量不小于75磅
- 重量不超过300磅
很抱歉,您输入的高度无效 请以英寸为单位输入您的身高:62
请以磅为单位输入您的体重:x
对不起,您没有输入磅数
我有一个想法,因为人们建议使用try,catch语句。我已经试过了,但我似乎能找到答案
import java.util.*;
public class BMI {
public static void main(String[ ] arg){
// BMI calculator
Scanner keyboard = new Scanner ( System.in );
final double BMI_CONVERSION = 703.0; // pounds/inches to kilograms/meters for BMI calculations
double bodyMassIndex;
double height = 0;
double weight = 0;
String BMICategory = "";
// user inputs
// inches
System.out.print( "What's your height in inches? ");
height = keyboard.nextDouble();
// Pounds
System.out.print( "What's you weight in pounds? ");
weight = keyboard.nextDouble();
// Calculate BMI
bodyMassIndex = weight * BMI_CONVERSION / (height * height);
if (bodyMassIndex < 18.5)
{
BMICategory = "considered at a underweight";
}
else if (bodyMassIndex >= 18.5 && bodyMassIndex <= 25)
{
BMICategory = "considered at a optimal weight";
}
else
{
BMICategory = "considered overweight";
}
// output
System.out.println( "Your BMI is: " + bodyMassIndex + ", You are " + BMICategory + ".");
}
}
import java.util.*;
公共类BMI{
公共静态void main(字符串[]arg){
//体重指数计算器
扫描仪键盘=新扫描仪(System.in);
最终双倍BMI_换算=703.0;//用于BMI计算的磅/英寸到千克/米
双体massindex;
双倍高度=0;
双倍重量=0;
字符串bmi类别=”;
//用户输入
//英寸
系统输出打印(“你的身高是多少英寸?”);
高度=键盘.nextDouble();
//磅
系统输出打印(“你的体重是多少磅?”);
权重=键盘.nextDouble();
//计算体重指数
bodyMassIndex=体重*体重指数换算/(身高*身高);
如果(车身质量指数<18.5)
{
bmicontegory=“在体重不足时考虑”;
}
否则,如果(bodyMassIndex>=18.5&&bodyMassIndex请查看“public void functionName()抛出InvalidInputException
”如果要使用异常,您需要重新组织程序。异常意味着您将在函数外有一个try/catch块,该块抛出异常
1) -创建具有计算所需文件的类,并创建计算方法
2) -创建对输入周期有响应的类,每个变量都有单独的函数。如果值无效,此方法应引发异常。创建主函数,该函数将调用所有必要的函数来读取数据,并将其关闭到try/catch块中
像这样
public BMI masterFunc(){
try{
readFirst();
readSecond();
//etc....
BMI obj = new BMI();
//set you params to new created class BMI
//and return it from func
return obj;
}catch(Exception e){
return null;
}
}
现在你可以把它放在主循环中,就像
BMI obj = null;
while(obj == null)
BMI obj = ReaderClass.masterFunc();
希望我能回答你的问题!首先,打开你的代码并寻求帮助是违反网站规则的
无论如何,在您的代码中,您需要循环您的输入(而值设置为true的循环是最好的选择),在这个循环中,您检查输入是否符合您的条件。如果符合条件,则打破循环
这样你就可以坚持你的标准,并在最后得到BMI
另外,这里使用的概念是循环和打破循环,为了更好地理解,您可以在线查看一些示例。好吧……不要为此使用异常。这是一种糟糕的风格。您有什么具体的困难?您提供的代码中没有try/catch语句。