Java 代码是否检查每个if语句?

Java 代码是否检查每个if语句?,java,arrays,eclipse,performance,if-statement,Java,Arrays,Eclipse,Performance,If Statement,所以我在练习以前的谷歌代码阻塞问题(顺便说一句,如果你还不知道的话,是在4月7日),我写了这段代码,在其中我放了多个if语句。 看起来像这样: for(int b=0;b<length;b++) { if(array[b]==1 && done1==false) {

所以我在练习以前的谷歌代码阻塞问题(顺便说一句,如果你还不知道的话,是在4月7日),我写了这段代码,在其中我放了多个if语句。 看起来像这样:

for(int b=0;b<length;b++)
                        {
                           if(array[b]==1 && done1==false)
                           {
                              done1=true;

                           }

                           if(array[b]==2 && done2==false)
                           {
                              done2=true;
                           }

                             if(array[b]==3 && done3==false)
                           {
                              done3=true;
                           }

                           if(array[b]==4 && done4==false)
                           {
                              done4=true;
                           }

                           if(array[b]==5 && done5==false)
                           {
                              done5=true;
                           }

                           if(array[b]==6 && done6==false)
                           {
                              done6=true;
                           }

                           if(array[b]==7 && done7==false)
                           {
                              done7=true;

                           }

                           if(array[b]==8 && done8==false)
                           {
                              done8=true;

                           }

                           if(array[b]==9 && done9==false)
                           {
                              done9=true;

                           }

                           if(array[b]==0 && done0==false)
                           {
                              done0=true;

                           }

                           if(done0==true && done1==true && done2==true && done3==true && done4==true && done5==true && done6==true && done7==true && done8==true && done9==true)
                           {
                               System.out.println("Case"+" "+"#"+(K-T) + ":"+G);
                               break;
                           }



}

for(intb=0;b到目前为止您尝试了什么?您是否至少调试了它以回答您的问题?

if
语句与
if else
语句之间存在差异。if else将遍历所有条件并进行检查,直到发现条件为
true
。另一方面,程序将检查多个if语句,无论其中一个或全部为true。

因为您没有使用
else
或<代码>继续
或中断或防止控制流到下一个
的其他操作,如果在上一个
之后
,则对每个操作进行评估

更简单的情况:

if (condition1) {
    System.out.println("Condition1");
}
if (condition2) {
    System.out.println("Condition2");
}
如果第二个
,则第二个
不受第一个的任何影响(除非第一个导致抛出异常)。但是:

现在,第二个
if
是第一个
if
else
子句的一部分,因此只有当第一个
if
的条件为false时才对其进行计算

您的代码处于循环中,因此另一个中断正常控制流的示例:

for (/*....*/) {
    if (condition1) {
        System.out.println("Condition1");
        continue;
    }
    if (condition2) {
        System.out.println("Condition2");
    }
}
在这里,由于第一个
if
的块包含
continue
,它跳到循环迭代的末尾并开始下一个循环迭代,如果第一个
if
的条件为true,我们将跳过第二个(对于
break
也是如此)


我建议使用IDE中内置的调试器来逐步完成代码并了解这些东西是如何工作的。使用调试器不是一项高级技能;它是初学者早期需要的基本技能,因此他们可以探索类似的问题。此外,我建议阅读一些教程和/或Java书籍来理解ba流控制的SIC。

由于不同的if语句彼此不相关,因此将检查所有if语句。

您有单独的if语句,因此它将执行每个if语句。 如果使用If-then-else语句,它将一直执行,直到If语句为true,然后退出。
检查if-then和if-then-else语句的此链接:

您必须将
else-if(数组[b]==2&&done2=false)
放在问题中,因为您只将一个数组与
else-if(数组[b]==0&&done0=false)进行比较

您的问题的答案是肯定的,无论之前的if测试结果如何,每次都将通过循环测试每个if语句


您的第二个问题无法在所提供的抽象上下文中得到回答。此外,我相信该问题需要征求意见。

答案是肯定的,它将检查每个if语句。原因很简单,在条件评估为真后,您不会跳出循环

如果要在条件的计算结果为true后中断循环,应编写:

if(array[b]==1 && done1==false)
{
  done1=true;
  break; // or continue; if you want to continue on to the next loop
}

另一方面,您的代码似乎过于复杂。我不确定您想要完成什么。

为什么不调试并查看它?您将从经验中学到更多,而不是要求使用IDE中内置的调试器逐步查看代码。使用调试器不是一项高级技能,而是一项基本技能ers需要,尽早,这样他们就可以探索这样的问题。另外:参考教程,进一步了解
如果
工作原理。谢谢@T.J.Crowder,我会试试的。
if(array[b]==1 && done1==false)
{
  done1=true;
  break; // or continue; if you want to continue on to the next loop
}