2016-12-05 93 views
-2

我使用BlueJ的。 https://gyazo.com/77463830f2b557c86fbf65c7401053a4的Java编译 “(预期” 的错误

我没有找到我在哪里错过 “(” 提前

public Date(int day, int month, int year){ 
    if checkDate(day,month,year)=false { 
     _day=default_Day; 
     _month=default_Month; 
     _year=default_Year;} 
    else { 
     _day=day; 
     _month=month; 
     _year=year; 
    } 

感谢=)

+1

在java中,要检查的条件“如果”需要用括号括起来“()”,'如果(了checkdate(日,月,year)= false)' – davedwards

+0

'if'的表达式必须包含parens:'if(checkDate ...)'。另外,'= false'中的'='必须是'==' - 你正在检查是否相等,而不是赋值。你应该阅读[Java nuts and bolts](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html)教程,因为它会给你一个关于Java语法的好的入门书。 – yshavit

+1

作为一个风格问题,你不会比较'false'。相反,您可以使用'!'运算符:'if(!checkDate(day,month,year)){' – Rob

回答

0

您需要将括号内的条件括起来并使用==运算符(=)作为赋值运算符进行比较所以,

变化

if checkDate(day,month,year)=false{ 

if (checkDate(day,month,year) == false){ 

或者,使其更简单,将其更改为

if (!checkDate(day,month,year)){ 
0

在你的代码的第二行两 '(' 和 ')' 丢失。 此外,您错误'='(分配)与'=='(等于)。 除了

if (checkDate(day,month,year)==false) 

可以表达简单,因为

if (!checkDate(day,month,year)) 




    public Date(int day, int month, int year){ 
      if (checkDate(day,month,year)==false) { 
//if (!checkDate(day,month,year)) { <- exactly the same, but simpler 
       _day=default_Day; 
       _month=default_Month; 
       _year=default_Year; 
     } 
      else { 
       _day=day; 
       _month=month; 
       _year=year; 
      }