7

私はJAVAを学んでいて、コードのこの特定の部分に少し問題があります。いくつかのサイトを検索し、さまざまな方法を試しましたが、さまざまな可能性に対応する方法を実装する方法がわかりません。

int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
                + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;

ユーザーに入力がない場合や、1、2、3 以外の入力がある場合でも、何らかの検証が必要だと思います。これを達成する方法について誰か提案がありますか?

while ループ、入力を整数に変換する前に null をチェックする if ステートメント、およびいくつかの異なるタイプの if else if メソッドを試しました。

前もって感謝します!

4

2 に答える 2

6

不正な入力を処理するには、次のようにする必要があります。

boolean inputAccepted = false;
while(!inputAccepted) {
  try {
    int playerChoice = Integer.parseInt(JOption....

    // do some other validation checks
    if (playerChoice < 1 || playerChoice > 3) {
      // tell user still a bad number
    } else {
      // hooray - a good value
      inputAccepted = true;
    }
  } catch(NumberFormatException e) {
    // input is bad.  Good idea to popup
    // a dialog here (or some other communication) 
    // saying what you expect the
    // user to enter.
  }

  ... do stuff with good input value

}

于 2010-08-23T03:21:55.303 に答える
2

How to Make Dialogsに関する Swing チュートリアルのセクションを読んでください。このセクションでは、入力を検証する必要がないように JOptionPane を簡単に使用する方法を実際に示しています。

使用できるさまざまなアプローチがあります。コンボ ボックスを使用して選択肢を表示することも、複数のボタンを使用して選択肢を選択することもできます。

このチュートリアルでは、ユーザーの入力を検証できるように、「ダイアログの自動クローズを停止する」方法も示します。

于 2010-08-23T03:17:18.927 に答える