麻烦与&&操作者

时间:2013-10-08 12:56:31

标签: java if-statement

在下面的代码中,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.");
    }       
}

4 个答案:

答案 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!");
}