2016-05-15 4 views
0

ユーザーが3〜10の高さを入力し、zeldaの三角形がjavaで印刷されるプログラムを構築しています。現時点では、ユーザーがその範囲外の数値を入力するたびに例外がスローされますが、文字列が入力されるたびに例外がスローされるようにします。 InputMismatchExceptionの利用方法がわからないこれは、これまでの私のコードです:例外が実行されていません

public static void main(String[] args) { 

    Scanner keyboard = new Scanner(System.in); 
    int height; 

    try { 
     System.out.print("Enter height: "); 
     height = keyboard.nextInt(); 
     } 

    catch (InputMismatchException e) { 
     System.out.println(""); 
     System.out.println("Invalid height."); 
    } 

    if (height < 3 || height > 10) { 
      System.out.println("Invalid height."); 
      System.exit(0); 
    } 
+0

あなたは、文字列が入力された場合は、スキャナ#1 next'や 'スキャナ#'で読み取るチェックしたい場合は、 'int'のために求めていますnextLine'を呼び出し、try-catchブロックで 'Integer#parseInt'を使用します。 –

+1

"エラー"状態で 'System.exit(0)'を使うべきではありません。ゼロエラーコードで終了するということは、慣習的に "成功"を意味します。さらに、コードでは 'System.exit'を使うことはほとんどありません。' return'はここで同じ効果があります。 –

答えて

1
try { 
    System.out.print("Enter height: "); 
    height = keyboard.nextInt(); 

    if (height < 3 || height > 10) { 
     System.out.println("Invalid height."); 
     System.exit(0); 
    } 
    // print triforce from zelda 
    // ... 
} catch (InputMismatchException e) { 
    System.out.println("please input a int"); 
} 
+0

すっごくありがとう! :) –

+0

なぜあなたは 'InputMismatchException'をキャッチし、' System.exit'を使用しますか? – Andrew

関連する問題