麻烦与&&运算符

Ros*_*ung 3 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.");
    }       
}
Run Code Online (Sandbox Code Playgroud)

Mau*_*ren 14

这是因为你把括号括起来了.该if语句已由两个括号组成,因此您必须将语句写为

if ((age>=18) && (goodCreditHistory == true))
Run Code Online (Sandbox Code Playgroud)

代替

if (age>=18) && (goodCreditHistory == true)
Run Code Online (Sandbox Code Playgroud)

因为你的statement(&& (goodCreditHistory == true))的第二部分被解析,好像它是if正文的一部分.

您可以用更简洁的方式编写此声明

if(age >= 18 && goodCreditHistory)
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,您在此处使用了多余的括号. (4认同)

Sur*_*tta 6

正确的语法是

   if  (age>=18 && goodCreditHistory){

}
Run Code Online (Sandbox Code Playgroud)

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

goodCreditHistory== true
Run Code Online (Sandbox Code Playgroud)

因为它已经是一个 boolean.