无法在 java 中重复 switch 语句
Cant repeat switch statement in java
我正在 java 中为我的计算机科学 class 开发一个简单的银行应用程序,但我无法重复 switch 语句。这是我的开关语句。谢谢!
//Menu
System.out.println("W. Withdraw");
System.out.println("D. Deposit");
System.out.println("B. View Balance");
System.out.println("To exit program, type Quit");
Scanner keyboardMenu = new Scanner(System.in);
menuOptions = keyboardMenu.next();
//Switch statement to navigate menu options
switch (menuOptions) {
case "B":
System.out.println("Your balance is $" + balance);
break;
case "D":
System.out.println("Deposit: ");
Scanner keyboardDeposit = new Scanner(System.in);
double deposit = keyboardDeposit.nextDouble();
balance = balance + deposit;
System.out.println("Your new balance is $" + balance);
break;
case "W":
System.out.println("Withdraw: ");
Scanner keyboardWithdraw = new Scanner(System.in);
double withdraw = keyboardWithdraw.nextDouble();
balance = balance - withdraw;
System.out.println("Your new balance is $" + balance);
break;
case "Quit":
System.out.println("Program terminated.");
break;
default:
System.out.println("Please select an option.");
break;
}
}
在没有更多上下文的情况下,我将假设您正在尝试做这样的事情:
do{
System.out.println("W. Withdraw");
System.out.println("D. Deposit");
System.out.println("B. View Balance");
System.out.println("To exit program, type Quit");
Scanner keyboardMenu = new Scanner(System.in);
menuOptions = keyboardMenu.next();
boolean keepGoing = true;
//Switch statement to navigate menu options
switch (menuOptions) {
case "B":
System.out.println("Your balance is $" + balance);
break;
case "D":
System.out.println("Deposit: ");
Scanner keyboardDeposit = new Scanner(System.in);
double deposit = keyboardDeposit.nextDouble();
balance = balance + deposit;
System.out.println("Your new balance is $" + balance);
break;
case "W":
System.out.println("Withdraw: ");
Scanner keyboardWithdraw = new Scanner(System.in);
double withdraw = keyboardWithdraw.nextDouble();
balance = balance - withdraw;
System.out.println("Your new balance is $" + balance);
break;
case "Quit":
System.out.println("Program terminated.");
keepGoing = false;
break;
default:
System.out.println("Please select an option.");
break;
}while(keepGoing)
我会将 Quit 子句从开关中拉出,然后将您的其他函数包装在 While
循环中。类似于:
//Switch statement to navigate menu options
while (menuOptions != "Quit") {
switch (menuOptions) {
case "B":
System.out.println("Your balance is $" + balance);
break;
case "D":
System.out.println("Deposit: ");
double deposit = keyboardDeposit.nextDouble();
balance = balance + deposit;
System.out.println("Your new balance is $" + balance);
break;
case "W":
System.out.println("Withdraw: ");
double withdraw = keyboardWithdraw.nextDouble();
balance = balance - withdraw;
System.out.println("Your new balance is $" + balance);
break;
default:
System.out.println("Please select an option.");
break;
}
menuOptions = keyboardMenu.next();
}
System.out.println("Program terminated.");
因此,每次当您进入开关时,您都可以确定他们没有键入退出。然后,在一天结束时,当他们输入 Quit 时,您进入了 Program Terminated 行。
我还会将您的 new Scanner
放在 Switch
语句之后。这样你只需要调用一次......在你完成你的决策树之后。
我正在 java 中为我的计算机科学 class 开发一个简单的银行应用程序,但我无法重复 switch 语句。这是我的开关语句。谢谢!
//Menu
System.out.println("W. Withdraw");
System.out.println("D. Deposit");
System.out.println("B. View Balance");
System.out.println("To exit program, type Quit");
Scanner keyboardMenu = new Scanner(System.in);
menuOptions = keyboardMenu.next();
//Switch statement to navigate menu options
switch (menuOptions) {
case "B":
System.out.println("Your balance is $" + balance);
break;
case "D":
System.out.println("Deposit: ");
Scanner keyboardDeposit = new Scanner(System.in);
double deposit = keyboardDeposit.nextDouble();
balance = balance + deposit;
System.out.println("Your new balance is $" + balance);
break;
case "W":
System.out.println("Withdraw: ");
Scanner keyboardWithdraw = new Scanner(System.in);
double withdraw = keyboardWithdraw.nextDouble();
balance = balance - withdraw;
System.out.println("Your new balance is $" + balance);
break;
case "Quit":
System.out.println("Program terminated.");
break;
default:
System.out.println("Please select an option.");
break;
}
}
在没有更多上下文的情况下,我将假设您正在尝试做这样的事情:
do{
System.out.println("W. Withdraw");
System.out.println("D. Deposit");
System.out.println("B. View Balance");
System.out.println("To exit program, type Quit");
Scanner keyboardMenu = new Scanner(System.in);
menuOptions = keyboardMenu.next();
boolean keepGoing = true;
//Switch statement to navigate menu options
switch (menuOptions) {
case "B":
System.out.println("Your balance is $" + balance);
break;
case "D":
System.out.println("Deposit: ");
Scanner keyboardDeposit = new Scanner(System.in);
double deposit = keyboardDeposit.nextDouble();
balance = balance + deposit;
System.out.println("Your new balance is $" + balance);
break;
case "W":
System.out.println("Withdraw: ");
Scanner keyboardWithdraw = new Scanner(System.in);
double withdraw = keyboardWithdraw.nextDouble();
balance = balance - withdraw;
System.out.println("Your new balance is $" + balance);
break;
case "Quit":
System.out.println("Program terminated.");
keepGoing = false;
break;
default:
System.out.println("Please select an option.");
break;
}while(keepGoing)
我会将 Quit 子句从开关中拉出,然后将您的其他函数包装在 While
循环中。类似于:
//Switch statement to navigate menu options
while (menuOptions != "Quit") {
switch (menuOptions) {
case "B":
System.out.println("Your balance is $" + balance);
break;
case "D":
System.out.println("Deposit: ");
double deposit = keyboardDeposit.nextDouble();
balance = balance + deposit;
System.out.println("Your new balance is $" + balance);
break;
case "W":
System.out.println("Withdraw: ");
double withdraw = keyboardWithdraw.nextDouble();
balance = balance - withdraw;
System.out.println("Your new balance is $" + balance);
break;
default:
System.out.println("Please select an option.");
break;
}
menuOptions = keyboardMenu.next();
}
System.out.println("Program terminated.");
因此,每次当您进入开关时,您都可以确定他们没有键入退出。然后,在一天结束时,当他们输入 Quit 时,您进入了 Program Terminated 行。
我还会将您的 new Scanner
放在 Switch
语句之后。这样你只需要调用一次......在你完成你的决策树之后。