[英]My login method returns both true and false output, why?
我仍然無法弄清楚我的代碼有什么問題。
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("[1] Register");
System.out.println("[2] LogIn as Client");
System.out.println("[3] LogIn as Admin");
System.out.println("[4] Exit");
System.out.print("Enter your choice here: ");
int choice = input.nextInt();
switch(choice){
case 1:
System.out.println("[Register Your Account]");
System.out.print("-----Enter your name: ");
String name = input.next();
System.out.print("-----Enter your desired 4-digit pin: ");
int pin = input.nextInt();
System.out.print("-----Enter your first deposit: ");
int balance = input.nextInt();
account client = new account(name,pin,balance);
client.setName(name);
client.setPin(pin);
client.setBalance(balance);
addToArrayList(client);
case 2:
System.out.println("[LogIn Your Account]");
System.out.println("----Enter Your Pin: ");
int logPin = input.nextInt();
logIn(logPin);
break;
case 3:
System.out.println("Case 3");
break;
case 4:
System.out.println("Case 4");
break;
}
}
static void addToArrayList(account client){
userList.add(client);
displayRegister(userList);
}
static void displayRegister(ArrayList<account> users){
for (account client : users){
System.out.println("(Here's what we received)");
System.out.println(client.getName());
System.out.println(client.getPin());
System.out.println(client.getBalance());
}
}
為什么當我在注冊后輸入正確的 PIN 碼時,我的登錄會給出 output 的 TRUE 和 FALSE,如果我輸入錯誤的 PIN 碼,程序就會結束?
static void logIn (int logPin){
if(!userList.isEmpty()){
int i = 0;
boolean isNotExist = false;
for(var acc: userList){
int pinCode = acc.getPin();
if(logPin==acc.getPin()){
System.out.println("(LogIn Successfully!)");
isNotExist=true;
mainMenu();
}
else{
i++;
}
}
if(isNotExist){
System.out.println("(Account does not exist...)");
}
}else{
System.out.println("(No data...)");
}
}
使用您編寫的此方法:
static void logIn (int logPin){...}
當你調用它時,你什么也得不到。 因為它是void
返回類型。 然而,
static boolean logIn (int logPin){...}
會給你一個true
或false
的回報,因為它是boolean
。 然后這樣稱呼它:
boolean success = logIn(logPin);
編輯以獲取更多信息使用該方法的boolean
返回類型,您將需要返回值isNotExist
而不是僅在方法中聲明並為其賦值:
{
boolean isNotExist = false;
...
// Code to assign value
...
return isNotExist;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.