2011-11-09 7 views
1

JavaでEclipseでプログラムを実行する。私がしたいことは、私が選択肢を使ってユーザに提示したいプログラムを実行するときです。私はすべての計算などを行っている、私はちょうどユーザーの選択肢を提供するためにこのメニューを作る方法について確信しています。私が探しています何のための例:次のようにあなたは、System.inからの入力を読み取るためにスキャナを使用することができますユーザが選択を行うためのコンソールメニューを作成する

To enter an original number: Press 1 
To encrypt a number: Press 2 
To decrypt a number: Press 3 
To quit: Press 4 
Enter choice: 


public static void main(String[] args) { 
    Data data = new Data(); 
    data.menu(); } 
} 

答えて

3

:これが必要になること

public static void main(String[] args) { 
    Data data = new Data(); 
    data.menu(); 

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

    switch (choice) { 
     case 1: 
      // Perform "original number" case. 
      break; 
     case 2: 
      // Perform "encrypt number" case. 
      break; 
     case 3: 
      // Perform "decrypt number" case. 
      break; 
     case 4: 
      // Perform "quit" case. 
      break; 
     default: 
      // The user input an unexpected choice. 
    } 
} 

注意実行を続行する前に、ユーザーが数字を入力してEnterを押します。無効な入力を入力すると、これは停止します。もう一度プロンプトを表示したい場合は、システムをどのように動作させたいかによって、何らかのループでこれをラップする必要があります。

Scanner#nextIntは、ユーザーが整数に解析できないものを入力した場合、例外をスローする可能性があります。この例外をキャッチして適切に処理できます。ユーザーが有効なオプションの範囲外の整数を入力した場合(つまり、1〜4の範囲外の場合)、switchステートメントのdefaultブランチに落ちますが、エラーケースを再び処理できますあなたは欲しい。

+0

素晴らしい!ありがとうございました! – PrgmRNoob

2

簡潔にするため、オプションの整数値を返す静的メソッドの使用をお勧めします。

public static int menu() { 

     int selection; 
     Scanner input = new Scanner(System.in); 

     /***************************************************/ 

     System.out.println("Choose from these choices"); 
     System.out.println("-------------------------\n"); 
     System.out.println("1 - Enter an original number"); 
     System.out.println("2 - Encrypt a number"); 
     System.out.println("3 - Decrypt a number"); 
     System.out.println("4 - Quit"); 

     selection = input.nextInt(); 
     return selection;  
    } 

あなたがメソッドを持っていたら、次のようにあなたのメインの方法でそれに応じて表示していまし完了します

public static void main(String[] args) { 

     int userChoice; 
     Scanner input = new Scanner(System.in); 

     /*********************************************************/ 

     userChoice = menu(); 

     //from here you can either use a switch statement on the userchoice 
     //or you use a while loop (while userChoice != the fourth selection) 
     //using if/else statements to do your actually functions for your choices. 
    } 

は、このことができます願っています。

+1

ロジックを別の静的メソッドにエクスポートする理由はありませんが、実際には、mainメソッドで新しいScannerインスタンスを作成することは時代遅れです。 –

関連する問題