使用循环进行输入验证和异常处理

用来

如何在尝试try和catch块的同时使用循环进行输入验证,以捕获输入不匹配异常?

这是我的主要方法

import java.util.InputMismatchException;
import java.util.Scanner;

public class labBookFortyThree {
    public static void main(String[] args) {
        Scanner myInput = new Scanner(System.in);
        double circle, rect1, rect2, cyl1, cyl2;
        int input = 0;
        System.out.println("Press 1 to calc circle, 2 for rect, 3 for cyln");

        try {
            input = myInput.nextInt();
        } catch (InputMismatchException e) {
            System.out.println("Please enter a proper value");
        }

        if (input == 1) {
            System.out.println("enter radius");
            circle = myInput.nextDouble();
            System.out.println("area of circle is " + areas.area(circle));
        } else if (input == 2) {
            System.out.println("enter length and height");
            rect1 = myInput.nextDouble();
            rect2 = myInput.nextDouble();
            System.out.println("area of rect is " + areas.area(rect1, rect2));
        } else if (input == 3) {
            System.out.println("enter rad, height");
            cyl1 = myInput.nextDouble();
            cyl2 = myInput.nextDouble();
            int useless = 0;
            System.out.println("Area of cyl is " + areas.area(cyl1, cyl2, useless));
        }
    }
}

这是我的课区

public class areas {
    public static double area(double rad) {
        double area = 3.14 * (rad * rad);
        return area;
    }

    public static double area(double width, double height) {
        double area = width * height;
        return area;
    }

    public static double area(double rad, double height, int useless) {
        double area = (3.14 * (rad * rad) * height);
        return area;
    }
}

我应该在哪里进行输入验证循环?有没有更好的办法?而我该如何在创意中做些什么呢?

艾略特新鲜

代替

try {
  input = myInput.nextInt();
} catch (InputMismatchException e) {
  System.out.println("Please enter a proper value");
}

一种可能的方法是使用循环并检查您期望的输入(例如int1到3之间),

int input = 0;
while(input < 1 || input > 3) {
  if (myInput.hasNextInt()) {
    input = myInput.nextInt();
  } else if (myInput.hasNext()) {
    System.out.println("Please enter a proper value");
    myInput.next();
  } else {
    System.err.println("No more input");
    System.exit(1);
  }
}
// input is 1,2 or 3. Or the program ended.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用循环进行输入验证

来自分类Dev

执行 while 并尝试捕获陷入循环以进行用户输入验证/异常处理

来自分类Dev

使用try和catch进行异常处理

来自分类Dev

使用 java 8 foreach 循环调用方法和处理异常

来自分类Dev

Lua:使用循环解析和处理输入-寻找指导

来自分类Dev

使用注释进行异常处理?

来自分类Dev

使用 while 循环验证输入

来自分类Dev

批处理:使用IF ELSE,mysql和目录进行循环

来自分类Dev

C#的输入验证和异常

来自分类Dev

我应该使用异常来处理用户输入验证吗?

来自分类Dev

使用jQuery进行输入验证

来自分类Dev

使用Omnifaces进行跨域验证:“输入X和Y或输入Z”

来自分类Dev

使用Boost ASIO进行Boost异常处理

来自分类Dev

使用Boost ASIO进行Boost异常处理

来自分类Dev

使用Oracle Forms Builder进行异常处理

来自分类Dev

使用字典进行基本异常处理

来自分类Dev

需要帮助解决使用Java和OpenCV进行眼睛检测时的异常处理

来自分类Dev

使用bind_rows()和lapply()函数进行错误/异常处理

来自分类Dev

使用 While 和 IF 进行验证

来自分类Dev

使用awk和sed进行字符串处理和循环

来自分类Dev

使用javascript使用开始时间和结束时间进行时间输入验证

来自分类Dev

使用 jQuery ajax 处理特定的循环输入

来自分类Dev

在while循环中进行扫描仪输入验证

来自分类Dev

使用中继进行用户输入验证

来自分类Dev

使用模式Angular 2进行输入验证

来自分类Dev

使用GetOrgChart对输入字段进行验证

来自分类Dev

使用GUI进行输入验证(java)

来自分类Dev

使用Powershell进行输入验证/数据过滤

来自分类Dev

使用std :: ifstream进行输入验证

Related 相关文章

热门标签

归档