当前位置: 首页 > 知识库问答 >
问题:

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

南宫兴德
2023-03-14

当谈到编码时,我是一个完全的初学者。我现在在当地的社区大学上编程课。我们被指派创建一个程序来计算用户的BMI(身体质量指数)。

我已经设法创建了程序的基本结构,用户输入体重和身高,并将其计算到BMI中。然而,有一个标准我正在努力创建。

    null

请以英寸为单位输入身高: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 + ".");

    }
}

共有1个答案

璩华辉
2023-03-14

如果您想使用Exceptions,您需要重新组织您的程序。Exception意味着您将在函数之外有一个try/catch块,该块引发异常。

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

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

希望我能回答你的问题!

 类似资料:
  • 我的程序向用户询问测试分数并显示最小/最大值、测试#和平均值。但是,如果分数不在0到10之间,我不希望在计算中使用该数字。我将如何在do/time循环中执行此操作?我尝试过输入System.exit(0);在if(num }

  • 我希望“请输入一个带有字母S的句子”循环,直到用户输入字母“S”

  • 这是我为CS类制作的文本冒险游戏的一小部分。你正在探索一座房子,你通过告诉游戏你想去北、南、东还是西来导航它 因此,我想添加一些内容,以便在输入无效输入时告诉您,如果您说拼写错误的单词,如Nroth、Suoth、Eas或Weast。这些只是例子,但希望你们知道我的意思,只要它不完全匹配北,南,东或西。在这段代码中,我将如何做到这一点? 我举了一个错误的例子,如果你在写“elif room==”的地

  • 问题内容: 我正在尝试这是一个计算器的代码。如何处理来自用户的无效输入? // ANSWER:将标头桥接到Objective-C // https://github.com/kongtomorrow/TryCatchFinally- Swift 这是相同的问题,但在objc中,但我想迅速进行 我只想显示一条消息,如果它不起作用,但是现在当用户输入的格式不正确时,我将收到一个异常消息。 问题答案:

  • 问题内容: 我正在寻找有关如何处理来自用户的无效UTF-8输入的一般策略/建议。 即使我的Web应用程序使用UTF-8,还是有些用户输入了无效字符。这会导致PHP的json_encode()错误,并且总体而言似乎是个坏主意。 W3C I18N常见问题解答:多语言形式说:“如果接收到非UTF-8数据,则应将错误消息发送回去。”。 在整个站点中有数十个可以输入数据的站点中,实际上该怎么做呢? 您如何以

  • 我正在尝试将输入验证添加到一组三个 ,用户在其中输入数值。我面临的问题是,为了使计算正常工作,用户无法输入零作为输入字段之一,否则应用程序将崩溃。 我尝试实现以下操作以防止输入零并显示警告消息。我收到一条错误消息,指出“无法启动活动calcResult”,这是显示计算的活动。 这是错误日志的链接:http://pastebin.com/hDsabjR6 我从这里了解到,零值仍然在通过验证,但我不知