如果开关不工作

时间:2013-11-15 17:21:11

标签: java if-statement

我正试图制作一个控件,阻止用户进入30岁以上房屋贷款的年度。

HomeLoan hLoan=new HomeLoan(name, custID, loanID);
System.out.println("You selected Home Loan");
System.out.println("Enter term: ");
term=input.nextInt();
boolean l=false;
boolean s = hLoan.termCorrect(term);
System.out.println(s);
if (s=true){
   System.out.println("Error: Maximum of 30 years");}
else {l=false;}

它调用termCorrect()方法来确定该术语是否超过30,并返回true或false。当我运行它时,s的值对于我使用的输入是正确的,但它总是出于某种原因运行错误消息,无论s。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:11)

您正在使用赋值运算符=

if (s=true){

使用比较运算符==代替:

if (s == true) {

或者,因为它已经是boolean,请使用s本身:

if (s)

最后一种形式更可取。它简洁明了,操作员没有机会与=混淆。

答案 1 :(得分:5)

if语句中的赋值运算符无效。改变

  if (s=true){// this invalid

 if (s){

答案 2 :(得分:3)

=是作业。 ==是平等比较。

答案 3 :(得分:2)

您的if声明不正确。使用s=true,您可以在s内将if设置为true。 Java中的等于运算符是==。因此,你可以这样做:

if(s==true)

或者,由于s==true在逻辑上等同于s(想一想),您可以这样做:

if(s)