2016-10-14 15 views
0

助けてください。Intで変数を宣言すると、JavaでDoubleが宣言され、その逆もあります。

「全体数としてあなたの家の被保険者の値を入力してください:」

シンプルですが、私は二重の別のステートメントのプリントを入力した場合には、読み取ります

声明では、印刷する必要のある「あなたを整数を入力する必要があります: "

それは私が立ち往生している場所です。私はそれを行う方法は、私は致命的な論理エラーを取得します。

は、ここに私のコードは宣言された変数で始まり、コード間でのスキップです:

double homeInsVal = 0.0; 

<other code> 

System.out.printf("%nPlease enter the insured value of your home as a whole number: "); 
homeInsVal = input.nextDouble(); 
{ 
if (homeInsVal >= 0.0) 
{ 
    System.out.printf("%nYou must only enter an integer: "); 
    homeInsVal = input.nextInt(); 
} 
} 

私のロジックは完全にオフになっています。 HomeInsValをdoubleとして宣言する理由は、2番目のステートメントをプロンプトするために小数点を入力するとすぐにIntとして宣言すると、論理エラーが発生しますが、私のコードは終了しますが、現在のコードは2番目のプロンプトは整数を入力しても印刷されます。

助けてください!

注:これはイントロJavaクラスです。乞食は選択できませんが、できるだけ簡単に説明してください。ありがとう!

+0

Javaの整数値検証http://stackoverflow.com/questions/8336607/how-to-check-if-the-value-is-integer-in-java –

答えて

0

参照することができますが、ユーザーは、彼らが好きなものを入力することができます手紙やその他のごみを含む。しかし、ユーザーが何か、つまり文字列を入力することを確信することができます。また、プログラムにデータを送信するには、を入力します。を入力します。これにより、改行文字(S)がバッファに格納されます。

これはどういう意味ですか?つまり、次のようなものが必要です。

String line = input.nextLine(); 
try { 
    Integer number = Integer.parseInt(line); 
} catch (NumberFormatException e) { 
    // input wasn't a number 
} 

これはすべての話ではありませんが、うまくいけば上手くいくでしょう。

関連する問題