在下面的代码中,if else语句中的&&
给出了语法错误,我不确定如何解决它。任何人都可以提供解决方案吗?
//Importing scanner
import java.util.Scanner;
public class Credithistory {
public static void main(String[] args) {
//Stating scanner gets its input from console
Scanner scanner= new Scanner (System.in);
//declaring int and boolean
int age;
boolean goodCreditHistory;
System.out.println("Please enter your age... ");
age= scanner.nextInt();
System.out.println("Do you have a good credit history (true or flase)?");
goodCreditHistory= scanner.nextBoolean();
if (age>=18) && ( goodCreditHistory== true){ // <-------------- Error
System.out.println("You have got a credit card!");
} else
System.out.println ("Sorry you are not eligible for a credit card.");
}
}
答案 0 :(得分:14)
这是因为你把括号括起来了。 if
语句已经由两个括号组成,因此您必须将语句写为
if ((age>=18) && (goodCreditHistory == true))
而不是
if (age>=18) && (goodCreditHistory == true)
因为语句的第二部分(&& (goodCreditHistory == true)
)正在被解析,好像它是if
正文的一部分。
您可以更简洁的方式将此声明写为
if(age >= 18 && goodCreditHistory)
不需要额外的括号。 == true
声明也是多余的。
答案 1 :(得分:6)
正确的语法是
if (age>=18 && goodCreditHistory){
}
删除不必要的括号。而且你也不需要写
goodCreditHistory== true
因为它已经是boolean
。
答案 2 :(得分:2)
在Java中,if
语句的整个条件必须包含在括号内,因此它应该是:
if ((age>=18) && (goodCreditHistory== true)) {
答案 3 :(得分:1)
将两个陈述放在一组括号中:
if (age>=18 && goodCreditHistory== true) {
System.out.println("You have got a credit card!");
}