3

コンソールでメニューを作成し、ユーザーにオプションを選択させようとしています。何らかの理由で、アプリケーションを実行すると、オプション広告をバイパスして、他のメニューに直接移動します。

import java.util.Scanner;

public class UserChoice {


 public static void main(String[] args) 
{
    boolean status = true;
    while (status == true)
    {
    System.out.println("");
    System.out.println("MENU");
    System.out.println("");
    System.out.println("A : String Functions");
    System.out.println("B : Simple Arithmetic Functions");
    System.out.println("C : Temperature Conversion");
    System.out.println("D : Sequences");
    System.out.println("E : Exit Application");
    System.out.println("");
    System.out.println("Please make a selection.");
            Scanner keyboard = new Scanner(System.in);
    String choice =null;
    choice = keyboard.nextLine();





    if (choice == "a" || choice == "A")
    {
        StringFunctions();
    }

    else if (choice == "b" || choice == "B")
    {
        ArithmeticFunctions();
    }

    else if (choice == "c" || choice == "C")
    {
        TemperatureConversion();
    }

    else if (choice == "d" || choice == "D")
    {
        Sequences();
    }

    else if (choice == "e" || choice == "E")
    {
        System.exit(0);
    }
    else 
    {
        System.out.println("You have entered an invalid selection, please choose again.");

    }
    }

}
4

2 に答える 2

4

すべての文字列/オブジェクトの比較では、equals()代わりにメソッドを使用する必要があります==(文字列リテラルを除く)

if (choice.equals("a") || choice .equals( "A")){....}

他のelse/ifブロックにも同じ変更を適用します。

==参照の等式を比較します。equals()メソッドはコンテンツの同等性をチェックします。

于 2012-10-26T04:03:54.977 に答える
0

少なくとも1つの文字が入力されていることを確認することをお勧めします。

   String choiceString ="";
   while(choiceString.length() <1){
         choiceString = keyboard.nextLine();
   }

完了したら、文字列から最初の文字を次のように取得することができます。

   char choice = choiceString.charAt(0);

これで、charを選択できるため、以下のように一重引用符を使用して条件を記述できます。

   if (choice == 'a' || choice == 'A'){
    .......
    ......

また、必要に応じて、入力された文字列の大文字と小文字を大文字または小文字に変更し、文字を取得してから、次のような単純な条件を使用します。

      char choice = choiceString.toUpperCase().charAt(0);
      if (choice == 'A'){ 
       .....
      }else if(...
于 2012-10-26T04:11:09.557 に答える