如何在Java中显示错误消息

时间:2017-01-07 06:38:14

标签: java java.util.scanner

我是初学者,我必须编写一个代码,用于计算用户给我的半径的面积和周长。那个部分很简单,但老师也希望我只接受有效的整数,并让用户在输入错误时重新输入一个值......

所以我能够让它显示每个案例的错误信息,除非他们输入一个负整数:

 import java.util.Scanner;
 public class GetCircle
 {
     public static void main(String []args)
     {

    Scanner input = new Scanner(System.in);
     int radius;
     do {
    System.out.print("Please enter size of radius (Must be integer): ");
    while (!input.hasNextInt()) {
        System.out.print("That is not a valid number, please try again :");
        input.next();
    }

    radius = input.nextInt();

    } while (radius < 0);

    System.out.println("The radius is: " + radius);

    }
}

所以这就是我得到的结果:

  

请输入半径大小(必须为整数):aaa

     

这不是有效号码,请再试一次:4.5555

     

这不是有效号码,请再试一次:-5

     

请输入半径大小(必须为整数): - 5

     

请输入半径大小(必须为整数): - 8.7777

     

这不是有效号码,请再试一次:-4

     

请输入半径大小(必须是整数):

**所以只要它是一个负整数,它就不会显示错误信息......

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点,但对于初学者来说,最简单的方法是在if的作业和外部的while循环结束之间添加radius语句:< / p>

 if (radius < 0) {
    System.out.print("The radius must not be negative, please try again :");
 }

答案 1 :(得分:1)

如果我的问题正确,那么您不需要使用!input.hasNextInt()。这就是你如何做到的。

import java.util.Scanner;

public class GetCircle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
    int radius = 0;
    System.out.print("Please enter size of radius (Must be integer): ");
    while (true){
        if(input.hasNextInt()){ 
        radius = input.nextInt();
        if (radius < 0){
            System.out.println("That is not a valid number, please try again :");
            System.out.println("Please enter size of radius (Must be integer): ");              
        }   else {
        System.out.println("The radius is: " + radius);
        }
        } else {
            System.out.println("That is not a valid number, please try again :");
            System.out.println("Please enter size of radius (Must be integer): ");
            input.next();

        }
    }   
}
}