2017-11-22 14 views
0

ここに最初の投稿 私はコードを変更して、配列の先頭にループバックし、無効なものを入力した後にユーザーに再度入力するように指示するように指示されました(たとえば0または5のように)。 誰かが私を正しい方向に向けることができたら、私は感謝します。誤入力後に配列の先頭にループバックする方法

package lepackage; 
import java.util.Scanner; 
public class SwitchItUp { 
    public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
     System.out.println("Enter menu item:"); 
     int input = scanner.nextInt(); 
     String inputString; 
     switch (input) { 
      case 1: inputString = "User want to Enter data"; 
        break; 
      case 2: inputString = "User want to Display sata"; 
        break; 
      case 3: inputString = "User want to Print data"; 
        break; 
      case 4: inputString = "User want to Exit"; 
        break; 
      default: inputString = "Invalid Number"; 
        break; 
     } 
     System.out.println(inputString); 
    } 
} 
+4

私はあなたにループの方向を指します。 whileループ。 – khelwood

+0

これを実現するには、再帰を使うか、実際のループを使うかの2つの方法があります。 sidenoteとして私はあなたが言及した配列を参照していない。 – SomeJavaGuy

答えて

3

私はここラベルの使用に関する

do { 
//your code here 
} while (!(input > 0 && input < 5)); 

See it online!

+0

逆条件を追加しました。 'while(input> 0 && input <5);' – Hiren

+0

@HirenPandit - 明確にするために、while(input <0 || input> 5)の反対です。 ' – notyou

+0

私は、入力が0より小さいか5より大きい場合にループが実行されるという条件にしたがって、入力がNOT(1、2、3、または4)のときにループを終了したいと思っています。 – Hiren

1

方法do...whileループでそれを囲むと思います。しかし、それはと比べるときれいなアプローチではありませんが、です。 see the code。またdon't forget to close the scanner !!

Scanner scanner = new Scanner(System.in); 
     int input; 
     badinput: while (true) { 
      System.out.println("Enter menu item:"); 
      input = scanner.nextInt(); 
      String inputString; 
      if ((!(input > 0 && input < 5))) 
       continue badinput; 
      else { 
       switch (input) { 
       //switch case 
       } 
       System.out.println(inputString); 
       break; 
      } 

     } 
     scanner.close(); 
関連する問題