0

初心者の Java 愛好家はこちら。

構造化された練習問題から離れて、空白のページから始めたいと思っていました。

コンソールからユーザー入力を受け取る方法を学んでいなかったので、console().readLine() について学ぶ必要がありました。これにより、整数などを解析するようになりました。私が思い描いていたことを実行するプログラムを構築およびコンパイルすることができ、完璧に実行できました! (少し不器用ではないにしても...)しかし、私は箱の外で考えて、意図しない方法でそれを使用してそれを壊す方法を知りたかった. コンソールに数値以外を入力すると (たとえば、6 ではなく P と入力すると)、エラーがスローされます。

簡単に言えば、知識を広げて独学しましたが、知識が不足しているため、探していた答えを見つけることができませんでした。誰かが何を読むべきかを教えてくれるだけでも、私は喜んで自分で学習を行います。正しい方向に微調整する必要があるだけです。

これが私のプログラムです:

public class mysteryDoors{
  public static void main(String[] args){
    int doorOne = 1;
    int doorTwo = 2;
    int doorThree = 3;

    System.out.println("Welcome contestant, to the Mystery Doors Game!");
    System.out.println("Would you like to find out what is behind door number 1?");
    System.out.println("Maybe door number 2?");
    System.out.println("Or perhaps, door number 3?!");

    int choice = Integer.parseInt(System.console().readLine("Please Choose a door..." ));

    while (choice > 3){
      System.out.println("I am sorry, please choose one of the available doors.");
      int guess = Integer.parseInt(System.console().readLine("Please try again..." ));
      choice = guess;
    }  

    if (choice == 1){
      System.out.println("Behind door number 1 is a wonderful sofa set!");
    }
    else if (choice == 2){
      System.out.println("Behind door number 2 is a nice shiny silverware set!");
    }
    else if (choice == 3){
      System.out.println("Behind door number 3 is a NEW CAR!");
    }
  }
}
4

2 に答える 2

1

なぜスキャナーを使わないのですか?参照: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

Scanner scanner = new Scanner(System.in);
int choice = in.nextInt();

AFAIK System.console() は IDE では機能しません。

于 2014-09-25T18:50:12.060 に答える
0

次のように、 try/catchブロックを使用して例外を処理します。

try
{
    int guess = Integer.parseInt(System.console().readLine("Please try again..." ));
    choice = guess;
}
catch(NumberFormatException e)
{
    System.out.println("Sorry, your input should be an integer. Try again.");
    e.printStackTrace();
}
于 2014-09-25T18:50:47.233 に答える