2016-03-23 26 views
-1

私は博物館のチケットシステムのプログラムを書いていますが、ユーザーが訪問したい展示物を入力しますが、無効な入力があった場合、プログラムはif文をスキップして残りのプログラムを続けます。ループ入力中に無効な入力

ここで何をしようとしているのは、入力データが無効な場合に、プログラムがif文の先頭にループバックすることです。

while(invalidinput){ 
    if (userinput.equalsIgnoreCase("Roman")) { 
     System.out.println("There are " +availabletic.getAvailabletickets1()+ " tickets available for the "+exhibit.getExhibit1()); 
     System.out.println(""); 
    } else if (userinput.equalsIgnoreCase("Warhol Art")){ 
     System.out.println("There are " +availabletic.getAvailabletickets2()+ " tickets available for the "+exhibit.getExhibit2()); 
     System.out.println(""); 

    } else if (userinput.equalsIgnoreCase("World War 2")) { 
     System.out.println("There are " +availabletic.getAvailabletickets3()+ " tickets available for the "+exhibit.getExhibit3()); 
     System.out.println("");} 

    } else if (!userinput.equalsIgnoreCase("Roman") 
      && !userinput.equalsIgnoreCase("Warhol Art") 
      && !userinput.equalsIgnoreCase("World War 2")) 
       invalidinput = false; // We signal that we may now leave the loop 
     { 
     System.out.println("Please enter a valid exhibition name"); 
    }    
} 
+0

最後の「else if」は「else」だけで置き換えることができます。 – Neyoh

答えて

0

else if (!userinput.equalsIgnoreCase("Roman") 
      && !userinput.equalsIgnoreCase("Warhol Art") 
      && !userinput.equalsIgnoreCase("World War 2")) 

を置き換える必要があります。

1

この条件:あなたはキャッチ他のすべて-場合は必要ありません

else if (!userinput.equalsIgnoreCase("Roman") 
      || !userinput.equalsIgnoreCase("Warhol Art") 
      || !userinput.equalsIgnoreCase("World War 2")) 
関連する問題