使用while循环尝试/捕获无法正常工作

时间:2015-12-09 13:48:01

标签: java

问题

  • 方法要求用户输入整数值。
  • 将值传递给循环以确保它是正数。
  • 添加in.nextline以确保该值不会超出下一行代码。 -
  • 返回整数值。

    private static int getIntFromUser(String aa) {
    
    int aaa = 0;
     while (true && aaa <= 0) {
         try {
             System.out.println(aa + ": ");
             aaa = in.nextInt();
                 if (aaa <= 0) {
                     System.out.println("Please enter a positive number.");
                 }
             } catch (Exception e) {
             System.out.println("Please enter an integer: ");
    
     in.next();
             }
     }
     in.next();
     return aaa;
    }
    

问题

使用while循环尝试/捕捉无法正常工作?

1 个答案:

答案 0 :(得分:0)

自己测试,它会正确返回aaa(删除方法底部的in.next()并将其替换为in.nextLine())。当您进行return呼叫时,您需要将其发送到某个地方。例如System.out或类似int x = getUserFromInput("test: ");

的变量
public class Tester {

    private static Scanner in = new Scanner(System.in);

    private static int getIntFromUser(String aa) {

        int aaa = 0;
        while (true && aaa <= 0) {
            try {
                System.out.println(aa + ": ");
                aaa = in.nextInt();
                if (aaa <= 0) {
                    System.out.println("Please enter a positive number.");
                }
            } catch (Exception e) {
                System.out.println("Please enter an integer: ");
                in.next();
            }
        }
        in.nextLine();
        return aaa;
    }

    public static void main(String[] a) {
        System.out.println(getIntFromUser("test123"));
    }
}

<强>输出

Output