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

时间:2016-02-25 22:20:21

标签: java calculator jgrasp

在编码方面,我是一个完整的初学者。我目前正在当地的社区学院上课。我们已经获得了一项任务,可以创建一个计算用户BMI(体重指数)的程序。

我设法创建了程序的基础结构,用户在那里输入了重量和高度并将其计算到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 + ".");

    }
}

3 个答案:

答案 0 :(得分:0)

如果你想使用exception.Exception意味着你将在函数之外有一个try / catch块,它会引发异常。

1) - 创建具有必要文件以进行计算的类,并计算方法。

2) - 创建对输入周期有响应的类,每个varialbe都有单独的函数。如果值无效,则此方法应抛出异常。创建将调用所有必需函数以读取数据并将其关闭到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();

希望我能回答你的问题!

答案 1 :(得分:-1)

查看&#34; public void functionName() throws InvalidInputException&#34;。

答案 2 :(得分:-1)

首先,将代码放在上面并寻求帮助是违反网站规则的。

无论如何,在你的代码中你需要循环你的输入(当值设置为true的循环是最好的选择),在这个循环中你检查输入是否符合你的标准。如果是,那么你就会脱离循环。

通过这种方式,您可以坚持自己的标准并最终获得BMI。

P上。 S.这里使用的概念是循环和断开循环,您可以在线查看一些示例以便更好地理解