我需要檢查用戶是否正在輸入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