Java 如果条件语句格式错误?

Java 如果条件语句格式错误?,java,Java,这应该很容易。我有3个复选框,有许多条件语句,它们应该根据输入的复选框执行。在本例中,我已检查了所有3个“已检查”…因此这些状态都不应运行。看起来我把它们格式化错了。让我知道我做错了什么…thanx 记录器: // form.isOpenLevel() = true // form.isPhyCompLevel() = true // form.isFinCompLevel() = true 这三条语句应该仅在三分之二为真时执行。至少我是这么想的 if ((form.isOp

这应该很容易。我有3个复选框,有许多条件语句,它们应该根据输入的复选框执行。在本例中,我已检查了所有3个“已检查”…因此这些状态都不应运行。看起来我把它们格式化错了。让我知道我做错了什么…thanx

记录器:

 //  form.isOpenLevel() = true
  // form.isPhyCompLevel()  = true
  // form.isFinCompLevel()  = true
这三条语句应该仅在三分之二为真时执行。至少我是这么想的

 if ((form.isOpenLevel() == true && form.isPhyCompLevel() == true) && (form.isFinCompLevel() != true));
        {
            paramBean.addFilter(new DetFilterCriteriaBean("MSST_HEADER_DATA_MV.FIN_COMP_DATE","is","NULL"));

        }


        if ((form.isPhyCompLevel() == true && form.isFinCompLevel() == true) && (form.isOpenLevel() != true));
        {
            paramBean.addFilter(new DetFilterCriteriaBean("MSST_HEADER_DATA_MV.PHYS_COMP_DATE","is","NOT NULL"));

        }

        if ((form.isOpenLevel() == true && form.isFinCompLevel() == true) && (form.isPhyCompLevel() != true));
        {
            paramBean.addFilter(new DetFilterCriteriaBean("nvl2(MSST_HEADER_DATA_MV.PHYS_COMP_DATE,MSST_HEADER_DATA_MV.FIN_COMP_DATE,'X')","is","NOT NULL"));

        }

首先,额外的妄想是多余的:

((a && b) && c) 
相当于

(a && b && c)
此外,“这三条语句只有在三分之二为真时才能执行”表示

应该足够了

最后,如果结束条件,则在
后面加上分号:

if ( b && c );
   statement;
相当于

if ( b && c )
{
}
statement
这就是为什么你的陈述总是正确的


删除
在条件之后。

首先,额外的参数是多余的:

((a && b) && c) 
相当于

(a && b && c)
此外,“这三条语句只有在三分之二为真时才能执行”表示

应该足够了

最后,如果
结束条件,则在
后面加上分号:

if ( b && c );
   statement;
相当于

if ( b && c )
{
}
statement
这就是为什么你的陈述总是正确的


删除
在条件之后。

去掉if语句末尾的分号。这会先发制人地关闭它

换言之,这:

if (a); {
   //do something
}
相当于:

if (a) {
}

{
  //do something
}

在这种情况下,
//do something
将成为一个始终运行的浮动块,并且if语句的条件部分没有代码可运行。

去掉if语句末尾的分号。这会先发制人地关闭它

换言之,这:

if (a); {
   //do something
}
相当于:

if (a) {
}

{
  //do something
}

在这种情况下,
//do something
成为一个始终运行的浮动块,if语句的条件部分没有代码可运行。

if
语句末尾有分号;移除它们。您将在这里结束条件语句-大括号中包含的块将在条件语句之外执行

此外,您不需要检查平等性;您的方法返回可直接计算的
boolean
值:

if ( form.isOpenLevel() && form.isPhyCompLevel() && !form.isFinCompLevel() )
{
    ...
}

if
语句的末尾有分号;移除它们。您将在这里结束条件语句-大括号中包含的块将在条件语句之外执行

此外,您不需要检查平等性;您的方法返回可直接计算的
boolean
值:

if ( form.isOpenLevel() && form.isPhyCompLevel() && !form.isFinCompLevel() )
{
    ...
}

去掉IF线上的分号

分号本质上是对Java说“什么也不做”。请注意,这些是等效的:

if (complex-logic) ;

if (complex-logic) { /* DO NOTHING */ }

去掉IF线上的分号

分号本质上是对Java说“什么也不做”。请注意,这些是等效的:

if (complex-logic) ;

if (complex-logic) { /* DO NOTHING */ }

删除
if()后面的分号。
尝试删除
if
之后-这很有帮助。感谢大家的快速回复…我不敢相信我没有注意到在
if()之后删除分号。
尝试删除
之后如果
-这很有帮助。谢谢大家的快速回复…我不敢相信我没有注意到谢谢信息员…不知为什么我没有注意到semicolons@DocHoliday很乐意帮忙。你还应该考虑其余的笔记<代码>((a&&b)和&c
可能会让其他程序员在查看您的代码时咯咯地笑,并且该子句中的附加条件可能会降低性能。感谢信息员…出于某种原因,我没有注意到semicolons@DocHoliday很高兴为您提供帮助。您还应该考虑其余的注释。
((a&b)&&c
可能会让其他程序员在查看您的代码时咯咯地笑,并且该子句中的附加条件可能会降低性能。