2016-04-19 5 views
1

私はswitch文とwhileループを使ってjavaでメニューを書いています。私は、メニュー2に進む前にユーザーがメニュー1を完了することを保証する方法を探しています。スイッチのステートメントの順序を制限する

package menuOrder; 

インポートjava.util.Scanner(、これは私がこの質問のために書いただけで素早くプログラムである私は、通常、セッターとゲッターを使用してデータを渡しますのでご注意ください) :ここでは

は、コードの例の作品です;

パブリッククラスメイン{

public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 

    int option = 0; 
    String Fname = null; 
    String Sname = null; 
    int Age = 0; 



    while(option !=5){ 

     System.out.println("1. Enter Firstname"); 
     System.out.println("2. Enter Surname"); 
     System.out.println("3. Enter Age"); 
     System.out.println("4. Display Details"); 
     System.out.println("5. System Exit"); 

     option = sc.nextInt(); 

     switch(option){ 

     case 1: 
      System.out.println("Please enter your Firstname >"); 
      Fname = sc.next(); 

      break; 

     case 2: 
      System.out.println("Please enter your Surname >"); 
      Sname = sc.next(); 

      break; 

     case 3: 
      System.out.println("Please enter your Age >"); 
      Age = sc.nextInt(); 

      break; 

     case 4: 
      System.out.println("Firstname = " + Fname + "\nSurname = " + Sname + "\nAge = " + Age); 
      break; 

     case 5: 
      System.out.println("You have chosen to System Exit!!!"); 
      System.exit(0); 

      break; 

      default: 
       System.out.println("Invalid Entry!! \nPlease try again"); 
     } 


    } 

} 

}

私は彼らのファーストネームの前に彼らの姓に入るの使用を防止しようとしています。

誰かが助けてくれますか?

ありがとうございます。

+0

* Firstnameの前に姓を入力しないようにしようとしています。* **なぜですか?**あなたのコードは正常に動作するはずです。 –

+1

スイッチを一切使用しないのはどうですか?それは最も簡単な解決策のようです – 11thdimension

+0

場合は、すべての入力オプションのcase文の中のIfブロックです。データが既に入力されている場合は、If文がスキップされます –

答えて

0

最初に名前のみを表示してください。その後、ユーザーがそのメソッドからファーストネームコール姓メソッドを入力すると、スイッチケースの代わりにメソッド呼び出しが使用されます。

+0

スイッチを使用しないでください。あるメソッドから別のメソッド呼び出しを、必要なシーケンスで使用します。このようにして、ユーザーは最初の名前を入力した後にのみ姓に入力します。 – Karen

+0

上記のコメントをご覧ください。 –

+0

私はスイッチの使用を理解していませんでした。あなたが詳細に説明できるなら、私はあなたを助けることができるかもしれません。 – Karen

関連する問題