Итак, я провел целый день, работая над небольшим проектом java, и подумал, что я должен попросить просить здесь, прежде чем я провожу еще три часа в Интернете.Java: неисправность else if statement (помощь binarysearch)
Так что я пытаюсь использовать бинарный поиск в инструкции if-else для доступа к массиву, который связан с классом где-то еще в коде.
и поэтому вы можете увидеть код:
public class BankProject {
public static void main(String[] args) {
Account[] accountArray = new Account[10];
accountArray[0] = new Account("Dillen Newton", 5555, 9000000.0, 10.0);
accountArray[1] = new Account("Meteor", 5556, 10000.0, 5.5);
accountArray[2] = new Account("Meteorite", 5557, 20000.5, 20.0);
accountArray[3] = new Account("Super Mario", 5558, 100.0, 7.0);
accountArray[4] = new Account("A Person", 5559, 234567.0, 6.0);
accountArray[5] = new Account("Noone", 5560, 97498237.99, 50.0);
accountArray[6] = new Account("Yes", 5561, 5.5, 100.0);
accountArray[7] = new Account("Anonymous", 5562, 222.2, 13.0);
accountArray[8] = new Account("Five Hours", 5563, 7600.0, 40.0);
accountArray[9] = new Account("Who Knows", 5564, 9533.8, 99.0);
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Please Enter A Specified Name");
System.out.println("Dillen Newton");
System.out.println("Meteor");
System.out.println("Meteorite");
System.out.println("Super Mario");
System.out.println("A Person");
System.out.println("Noone");
System.out.println("Yes");
System.out.println("Anonymous");
System.out.println("Five Hours");
System.out.println("Who Knows");
System.out.println("");
String n = reader.next(); // Scans the next token of the input as an int.
if (n.equals("Dillen Newton")){
Arrays.binarySearch(accountArray, "Dillen Newton");
System.out.println("Welcome, Dillen");
} else if (n.equals("Meteor")){
Arrays.binarySearch(accountArray, "Meteor");
System.out.println("Welcome, Meteor!");
} else if (n.equals("Meteorite")){
Arrays.binarySearch(accountArray, "Meteorite");
System.out.println("Hello, Meteorite!");
} else if (n.equals("Super Mario")){
Arrays.binarySearch(accountArray, "Super Mario");
System.out.println("Welcome, Mario");
} else if (n.equals ("A Person")){
Arrays.binarySearch(accountArray, "A Person");
System.out.println("Hi Person!");
} else if (n.equals("Noone")){
Arrays.binarySearch(accountArray, "Noone");
System.out.println("Welcome, Nobody!");
} else if (n.equals("Yes")){
Arrays.binarySearch(accountArray, "Yes");
System.out.println("Yes");
} else if (n.equals("Anonymous")){
Arrays.binarySearch(accountArray, "Anonymous");
System.out.println("Hello There!");
} else if (n.equals("Five Hours")){
Arrays.binarySearch(accountArray, "Five Houres");
System.out.println("Has it been that long already?");
} else if (n.equals("Who Knows")){
Arrays.binarySearch(accountArray, "Who Knows");
System.out.println("I don't");
} else{
System.out.println("Incorrect Account. Please restart and try again");
reader.close();
}
/* Account testAccount = new Account("Dillen Newton", 1122, 20000.0, 4.5);
testAccount.withdraw(2500);
testAccount.deposit(3000);
java.util.Date dateCreated = new java.util.Date();
System.out.println("Date Created:" + dateCreated);
System.out.println("Name:" + testAccount.getName());
System.out.println("Account ID:" + testAccount.getId());
System.out.println("Balance:" + testAccount.getBalance());
System.out.println("Monthly Interest:" + testAccount.getMonthlyInterest());
System.out.println("Process completed.");
}
*/
}
}
класса Account {
private String name;
private int id;
private double balance;
private double annualInterestRate;
private Date dateCreated;
public Account(){
name = "";
id = 0;
balance = 0.0;
annualInterestRate = 0.0;
}
public Account(int newId, double newBalance){
id = newId;
balance = newBalance;
}
public Account(String newName, int newId, double newBalance, double newAnnualInterestRate) {
name = newName;
id = newId;
balance = newBalance;
annualInterestRate = newAnnualInterestRate;
}
public String getName(){
return name;
}
public int getId(){
return id;
}
public double getBalance(){
return balance;
}
public double getAnnualInterestRate(){
return annualInterestRate;
}
public void setName(String newName){
name = newName;
}
public void setId(int newId){
id = newId;
}
public void setBalance(double newBalance){
balance = newBalance;
}
public void setAnnualInterestRate(double newAnnualInterestRate){
annualInterestRate = newAnnualInterestRate;
}
public Date getDateCreated(){
return dateCreated;
}
public double getMonthlyInterestRate(){
return annualInterestRate/12;
}
public double getMonthlyInterest(){
return (balance*getMonthlyInterestRate()/100);
}
public void withdraw(double amount)
{
balance = balance - amount;
}
public void deposit(double amount)
{
balance = balance + amount;
}
}
Так что я считаю, что все до сих пор является правильным. Но оператор if-else рассматривает все только как неправильные.
Что я пытаюсь сделать, так это выбрать учетную запись из массива, чтобы в следующей части я мог начать делать такие вещи, как снятие средств и депозиты и проверка баланса. Линейный поиск или бинарный поиск необходимы для этого проекта.
Я не знаю, нужно ли мне попробовать что-то еще, или если я просто пропустил что-то действительно простое. В любом случае, любая помощь будет оценена!
Возможный дубликат [? Как сравнить строки в Java] (http://stackoverflow.com/questions/ 513832/how-do-i-compare-strings-in-java) –
Чтобы расширить комментарий Майкла: == и equals() делать разные вещи. http://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java –