我需要检查用户是否正在输入java中的数值。我一直试图使用hasNextDouble,但使用hasNextDouble方法得到奇怪的错误,我不确定这是执行此检查的方式。检查数字输入java
请注意我不能使用while循环或任何其他高级方法,除非。
import java.util.Scanner;
import java.lang.Math;
public class CentimeterInch
{
public static void main (String [] args)
{
final int MAX=100, feet=12, meter=100;
final double inch=2.54;
Scanner scan = new Scanner (System.in);
System.out.println ("This program converts distances. ");
System.out.println ("Enter distance and unit (e.g. 37 1 or 100 2):");
double distance=scan.nextDouble();
if (!scan.hasNextDouble())
{
System.out.println ("please enter a numeric value");
distance=scan.nextDouble();
}
int unitType = scan.nextInt();
if (distance<0)
{
System.out.println ("Please enter a non negative distance");
}
....
我固定的错字,但它仍然不能正常工作,当我例如输入“A”,它崩溃。对于我来说,在将值放入'double distance'变量后调用hasNextDouble也没有意义,但是我还没有找到其他方法。 我只有一个双变量来检查,'int'不需要验证。编辑: 我提前了一下。现在它在崩溃之前显示错误。我如何让它不会崩溃,但再次接受变量?
if(!scan.hasNextDouble())
System.out.println ("please enter a numeric value");
distance=scan.nextDouble();
谢谢!
你的“怪异错误”是什么? – Rehman
错字:'if(!scan.hasNextDouble())' – Reimeus
我修正了错字,但它仍然没有运行,当我输入例如25a它崩溃。对于我来说,在将值放入'double distance'变量后调用hasNextDouble也没有意义,但是我还没有找到其他方法。我只有一个双变量来检查。谢谢! – tamir