私はJavaとenum型を初めて使用しています。整数、スキャナ、およびメニューオプションとしてのJavaの列挙型
私はその有効な選択肢として列挙型を使用し、それがユーザーのために、次の整数の選択を表示するメニュー選択しようとしています:フランクの銀行業務アプリケーションに
ようこそ。
は、入力します。
1.支店
4に顧客を追加銀行
3への分岐を追加銀行
2を作成し、顧客との取引
5.ディスプレイの銀行を作り、支店、得意先、および取引。
6.アプリケーションを終了します。
選択 - >
しかし、私が直面しています問題は、enum定数は、その名前と整数値を受け入れていないようだということです。だから私は今のところ手紙を書こうとしている。これは私がこれまで持っているコードです:
import java.util.Scanner;
enum MenuOptions
{
z("Continue"), a("Create Bank"), b("Add Branch"), c("Add Customer"),
d("Make Transaction"), e("Display Information"), q("Quit");
// field
private String meaning;
// constructor
MenuOptions(String meaning)
{
this.meaning = meaning;
}
// getters
public String getMeaning()
{
return meaning;
}
}
public class Main
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
System.out.println("Welcome to Frank's Banking Application.");
MenuOptions menuOptions = MenuOptions.z;
while (menuOptions != MenuOptions.q)
try
{
menu();
menuOptions = MenuOptions.valueOf(input.nextLine());
switch (menuOptions)
{
case a:
//createBank();
break;
case b:
//addBranch();
break;
case c:
// addCustomer();
break;
case d:
// makeTransaction();
break;
case e:
break;
case q:
System.out.println("Goodbye.");
break;
default:
System.out.println("Selection out of range. Try again");
}
}
catch (IllegalArgumentException e)
{
System.out.println("Selection out of range. Try again:");
}
}
public static void menu()
{
System.out.println("\nEnter:");
System.out.println("\ta. Create Bank");
System.out.println("\tb. Add a branch to a Bank");
System.out.println("\tc. Add a customer to a Branch");
System.out.println("\td. Make a transaction with a customer");
System.out.println("\te. Display Banks, Branches, Customers, and Transactions.");
System.out.println("\tq. Quit Application.");
System.out.print("\nSelection -> ");
}
}
わかるように、私が使用して自分のタイプに合わせて、スキャナからのユーザ入力を可能にするために自分の名前などの文字を持っているすべてのenumを編集する必要がありましたvalueOfメソッド
ただし、キーボードからのユーザー入力から1,2,3,4,5,6というオプションを制限付き列挙型として使用する方法はありますか?
希望と感謝します。
。魅力のように動作します。それはArrayIndexOutOfBoundsExceptionをスローしますが、私は他のものと一緒にそれを捕まえました。 –
@FrankMeanaユーザーが指定した番号が配列のサイズを超えていないことを確認すると、よりクリーンになります。 –