Java Try-Catch一遍又一遍地打印相同的行

时间:2016-04-17 20:01:10

标签: java

编辑,因为原件被标记为与完全无关的问题重复,不确定原因。

所以我试着编写一个try catch来查看用户输入的值是否介于0-4之间或不是整数。它适用于0-4之外的值,但是当它捕获非int时,比如我输入“W”我的控制台只是垃圾邮件:

“请输入等级,必须为0 - 4

这不是整数“

一遍又一遍,直到我强制停止程序。我试过包含一个抛出异常,这只是在线程“主”错误中给了我一个异常。如果它捕获错误/为什么我的代码是垃圾邮件控制台,我如何让代码返回尝试?

这是我的代码:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;



public class GroupProjPersonal {

public static void main (String[] args) throws IOException {
    boolean rational = false;
    Scanner s = new Scanner(System.in);
    while (rational == false) {
        try{

            System.out.println("Please enter the rank, must be 0 - 4");
            int rank = s.nextInt();
            if (rank < 0) {
                System.out.println("Rank must be between 0 and 4.");
                rational = false;
            }else {
                if (rank > 4) {
                    System.out.println("Rank must be between 0 and 4.");
                    rational = false;
                }
                else {
                    rational = true;
                }


            }
        }


        catch (Exception e) {
            System.out.println("This is not an integer");
            rational = false;




        }
    }
}
}  

0 个答案:

没有答案