gpt4 book ai didi

Java - 如果用户输入无效输入,我将如何返回异常?

转载 作者:行者123 更新时间:2023-12-01 06:23:15 30 4
gpt4 key购买 nike

在编码方面我是一个完全的初学者。我目前正在本地社区大学学习编程类(class)。我们的任务是创建一个计算用户 BMI( body 质量指数)的程序。

我已经成功创建了程序的基本结构,用户输入体重和高度并将其计算到 BMI 中,但是,我正在努力创建一个标准。

其中显示以下任何无效输入

  • 高度不低于 48 英寸
  • 高度不超过 80 英寸
  • 重量不低于 75 磅
  • 重量不超过 300 磅

交互示例

请输入您的高度(英寸):20
抱歉,您输入的高度无效

请输入您的高度(英寸):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 + ".");

}
}

最佳答案

如果你想使用异常,你需要重新组织你的程序。异常意味着你将在函数之外有一个 try/catch block ,从而引发异常。

1) - 创建具有计算所需文件和计算方法的类。

2) - 创建响应输入周期的类,为每个变量提供单独的函数。如果该值无效,此方法应抛出异常。创建主函数,该函数将调用所有必要的函数来读取数据并将其关闭到 try/catch block 中像这样

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;

}

}

现在你可以将它放入 main 中的循环中,例如

BMI obj = null;

while(obj == null)
BMI obj = ReaderClass.masterFunc();

希望我能回答你的问题!

关于Java - 如果用户输入无效输入,我将如何返回异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639558/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com