如何在 Java 中执行扫描程序异常



我想扫描一个浮点数和一个整数。我想添加一个例外,如果扫描的数字不是浮点数或整数,请在输入数字不正确时再次扫描。我尝试了hasNextFloathasNextInt但我并没有真正做对。

package has_exception;
import java.util.Scanner;
public class Has_Exception {
    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        System.out.println("Enter a float!");
        float fl = scn.nextFloat();
        System.out.println("Enter an integer");
        int a = scn.nextInt();
    }
}

尝试将字符串解析为浮点数并执行此操作,直到用户给出有效的输入...浮点数的初始值将取决于您的应用程序,您可以对整数值重复此方法

    Scanner scn = new Scanner(System.in);
    float fl = -1.0f;
    while (fl < 0) {
        System.out.println("Enter a float!");
        String x = scn.nextLine();
        try {
            fl = Float.parseFloat(x);
        } catch (NumberFormatException e) {
            System.out.println("Not a float");
        }
    }
您可以将

do{..}while()nextLine()一起使用,例如:

Scanner scn = new Scanner(System.in);
boolean correct = true;
do {
    try {
        System.out.println("Enter a float!");
        float fl = Float.parseFloat(scn.nextLine());
        System.out.println("Enter an integer");
        int a = Integer.parseInt(scn.nextLine());
    } catch (NumberFormatException e) {
        correct = false;
    }
} while (!correct);
scn.close();//close your scanner

最新更新