質問

どの動きに期待していた時のこのコード:

do while(testA) {

    // do stuff

} while(testB);

までのように振る舞い:

do {
    while(testA) {
        // do stuff
    }    
} while(testB);

または:

if(testA) {
    do {
        // do stuff
    } while(testA && testB);
}

または何か全く予期せぬ?

私はこの質問だと思うからこれは非常に曖昧で、その他の人を探すこと ない なので私は怠ける試験です。

他のヒント

でも、その行動に依存してどういう条件において試験をします。E.g.このコード:

  int i = 2;
  int j = 4;
  do while(j > 0) {
       i--; j--;
       System.out.println("i:" + i + " j:" + j);
 } while(i > 0);

出力:

i:1 j:3
i:0 j:2
i:-1 j:1
i:-2 j:0

その作品のように:

while(j>0) {

}

は交換によっては、変数名:

do while(i > 0) {
    //.. same as above
 } while(j > 0);

の出力です:

i:1 j:3
i:0 j:2

ようでした動作と同じもの(すなわち最初がる)ですが、ここでは、 の適用が終了!


概要:
testA不満足 となり testB不満足, は、コード作品のように通常の while(testA){} ループを実行します。
もの: られる場合には、時 testA満足しなくなってい, testB まだ満足, のループ ない 行くのスクリプト せ終了.この場合に限り、条件の"外"ループする必要が内側のループを実行します。

更新: 後で読むその他の答えを実現し、このメソッドは、入れ子の挙動 do-while - while ループを実行します。
とにかく、教訓:ご使用にならないでください。ような構文できるので混同していません)

これは

のように振る舞います
do {
    while(testA) { 
        // stuff
    }
} while(testB);

そこで、コードのそのブロックがこのように解析されます:

TESTBが真である間、

{コードブロックを}行います。ここで、{コードのブロック}インナーつつある。

これは、そのようなコードを書くために、確かに少し珍しいです:)

答えは#1です。それは限りtestBが満たされるとループし続けますが、testAが満たされない場合には、コードを実行されません。

"do {} while();" "while(){}" とは、別であるが、一方の構築物である。

do while」のようなものはありません。あなたは不注意でそれらを入れ子にして、{}は、単一の手順については、オプションであるという事実を利用している。

言い換えれば、これは法的な構文です。

do System.out.println("Hello World") while (true);

などif-文で、ブロックは、単一の文として扱われます。

あなたの最初の可能な答えは「while(){}は」外側「do {} while();

内の単一の非括弧のものである右のいずれか、である、と言うことですどの

私は、このコードは合法であるとは思いません。

do while(testA) {

        // do stuff

    } while(testB);
scroll top