gpt4 book ai didi

java - 菜单选择及调用方法

转载 作者:太空宇宙 更新时间:2023-11-04 15:21:29 25 4
gpt4 key购买 nike

嘿,大家编写了一个程序,其中包含一个服务菜单,就像银行卡一样。问题是我使用了一种名为 doLogin 的方法,并使用了一个 boolean 值,这样如果答案 == true 则将执行 doServiceMenu,否则如果答案为 false,我希望它继续获取 doLogin。

但是这不起作用,我不确定这是否是我的逻辑,任何反馈将不胜感激

`enter code here`import java.util.Scanner;
class TopUp{

//class variable
static Scanner scan = new Scanner (System.in);
static String name = "Joe";
static String cardNumber = "1234 5678 9101 1213";
static double balance = 0;

public static void main(String[] args){
boolean isLoginCorrect = false;
isLoginCorrect = doLogin();

if(isLoginCorrect == true){
doServiceMenu();
}
else if(isLoginCorrect == false){
System.out.println("Incorrect username or password,try again!");
System.out.println();
doLogin();
}
}

public static boolean doLogin(){

String userName = "joe" ;
String password = "123456";
String nameInput;
String pwdInput;



System.out.println("Please enter your Username: ");
nameInput = scan.nextLine();

System.out.println("Please enter your Password: ");
pwdInput = scan.nextLine();

return ((userName.equals(nameInput)) && (password.equals(pwdInput)));

}

public static void doServiceMenu(){

System.out.println("<********************* Services Menu ****************>");
System.out.println("<************** Please Select an option: ***********>");
System.out.println("1> Customer Details");
System.out.println("2> Customer Balance");
System.out.println("3> Top-up");
System.out.println("4> Make A Purchase");
System.out.println("5> Quit");
System.out.println("");
System.out.println("<*************************************************>");

Scanner keyboard = new Scanner(System.in);
String menuSelect = keyboard.nextLine();

switch (menuSelect) {

case "1":
showCustomerDetails();
checkIfUserWantsAnotherTransaction();
break;
case "2":

printBalance();
checkIfUserWantsAnotherTransaction();
break;
case "3":
doTopUp();
checkIfUserWantsAnotherTransaction();
break;
case "4":
makePurchase();
checkIfUserWantsAnotherTransaction();
break;
case "5":
System.out.println("Goodbye!!!");
break;
default:
System.err.println ( "Unrecognized option" );
break;
}
}

public static void showCustomerDetails(){
System.out.println("Name: " + name);
System.out.println("Card Number : " + cardNumber);
}

public static void printBalance(){
System.out.println("Your balance is : " + balance);
}

public static void increaseBalance(double amount){
balance += amount;
}

public static void decreaseBalance(double amount){
balance -= amount;
}


public static void doTopUp(){
System.out.println("Please enter a Top Up Amount: ");
double amount = scan.nextDouble();
double maxTopUp = 1000 - balance;

if(amount > maxTopUp){
System.out.println("Amount exceedes Max Top Up: ");
}
else{
increaseBalance(amount);
printBalance();
}
}

public static void makePurchase(){
System.out.println("Please enter the purchase amount: ");
double amount = scan.nextDouble();
double purchase = amount - balance;

if(amount > balance){
System.out.println("Sorry Insufficent Funds: ");
}
else{
decreaseBalance(amount);
printBalance();
}
}

public static void checkIfUserWantsAnotherTransaction() {
System.out.println("Would you Like another Service: y/n");
Scanner keyboard = new Scanner(System.in);
String option = keyboard.nextLine();

if(option.equals("y")){
doServiceMenu();
}
else if(option.equals("n")){
System.out.println("Goodbye!!!");
}
}
}

最佳答案

如果出现编译错误,则以下内容可能无法在您的代码中运行:

 String menuSelect = keyboard.nextLine();
switch (menuSelect) {
...
}

您无法切换字符串值。只能切换 int 或 Enum。所以你应该首先将你的 String 转换为 int 。

像这样:

int menuSelect = Integer.valueOf(keyboard.nextLine());

switch (menuSelect) {

case 1:
...

}

关于java - 菜单选择及调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20347924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com