我试图制作一个控件,阻止用户进入超过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;}
Run Code Online (Sandbox Code Playgroud)
它调用termCorrect()方法来确定该术语是否超过30,并返回true或false.当我运行它时,s的值对于我使用的输入是正确的,但它总是出于某种原因运行错误消息,而不管s.
任何帮助将不胜感激.
rge*_*man 11
您正在使用赋值运算符=:
if (s=true){
Run Code Online (Sandbox Code Playgroud)
==改为使用比较运算符:
if (s == true) {
Run Code Online (Sandbox Code Playgroud)
或者,因为它已经是一个boolean,使用s它自己:
if (s)
Run Code Online (Sandbox Code Playgroud)
最后一种形式是可取的.它简洁,操作员也没有机会与之混淆=.
if语句中的赋值运算符无效.改变
if (s=true){// this invalid
Run Code Online (Sandbox Code Playgroud)
至
if (s){
Run Code Online (Sandbox Code Playgroud)