我正试图制作一个控件,阻止用户进入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。
非常感谢任何帮助。
答案 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)