2014-01-20 39 views
-2

我不知道是因为我对accesor方法进行了格式设置,还是因为您只是不允许在if语句中使用if语句这种情况,但我似乎无法弄清楚为什么我试图编译我的代码时不断收到这两个错误。请帮忙。“非法表达式的开始”在布尔值内使用if &&语句

BankAccount.java:13:错误:表达式 如果(id2.equals(c.getId()))& & pin2.equals(c.getPin())V =真的非法启动; ^ BankAccount.java:13:error:';'预期 if(id2.equals(c.getId()))& & pin2.equals(c.getPin())v = true; ^

public class BankAccount 
{ 
private double balance; 
private Customer c; 
private boolean v; 

public BankAccount(){ 
    balance=100; 
    c=new Customer(); 
} 

public boolean ValidAccount(String id2, String pin2){ 
    if(id2.equals(c.getId()))&& pin2.equals(c.getPin())v = true; 
} 

public BankAccount(Customer c1, double initial){ 
    balance=initial; 
    c=c1; 
} 
public double checkBalance(){ 
    return balance; 
} 

public void deposit(double money){ 
    balance+=money; 
} 

public void withdraw(double money){ 
    balance-=money; 
} 

public Customer getCustomer(){ 
    return c; 
} 
public String toString(){ 
    return "" + c.getFirstName() + " "+ c.getFirstName() + balance + " " + 
c.getId() + " " + c.getPin(); 

} 
} 

回答

1

你忘了()封闭整个表达式。

---------------- Don't forget these ----------------- 
    v             v 
if ((id2.equals(c.getId()))&& pin2.equals(c.getPin())) 
{ 
    v = true; 
} 

编辑:

既然你宣布你的方法ValidAccount返回一个布尔值,你必须返回的东西。也许你想这样的:

public boolean ValidAccount(String id2, String pin2){ 
    if ((id2.equals(c.getId())) && pin2.equals(c.getPin())) 
     return true; 
    return false; 
} 

注:我建议你遵循Java的命名约定,在谷歌读到它。你应该调用这样的方法:someMethod(...)和类SomeClass

+0

谢谢你,摆脱了第一个错误,但现在我得到“BankAccount.java:14:错误:缺少return语句 \t} \t ^“作为错误 – user3213569

+1

^因此,返回一些东西! –

0
public boolean ValidAccount(String id2, String pin2){ 
    if(id2.equals(c.getId()))&& pin2.equals(c.getPin())v = true; 
    return v; //<-- gotta return v 
} 

你是不是在这里返回一个布尔

+0

好的,非常感谢球员,编程新手。对不起noob问题哈哈。 – user3213569