3

在下面的代码&&中,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

4 回答 4

14

这是因为你如何放置括号。该if语句已经由两个括号组成,因此您必须将语句写为

if ((age>=18) && (goodCreditHistory == true))

代替

if (age>=18) && (goodCreditHistory == true)

因为您的语句 ( ) 的第二部分&& (goodCreditHistory == true)被解析为好像它是if正文的一部分。

你可以用更简洁的方式写这个语句

if(age >= 18 && goodCreditHistory)

不需要额外的括号。== true声明也是多余的。

于 2013-10-08T12:58:04.823 回答
6

正确的语法是

   if  (age>=18 && goodCreditHistory){

}

删除不必要的括号。而且你也不需要写

goodCreditHistory== true

因为它已经是一个 boolean.

于 2013-10-08T12:57:19.863 回答
2

在 Java 中,语句的整个条件if必须包含在括号中,所以它应该是:

if ((age>=18) && (goodCreditHistory== true)) {
于 2013-10-08T12:58:44.907 回答
1

将两个语句放在一组括号中:

if (age>=18 && goodCreditHistory== true) {
    System.out.println("You have got a credit card!");
}
于 2013-10-08T12:57:32.667 回答