-3

以下は C++ コードです。おそらく強調することが重要です。

たとえば、私が言っているのは、次のことです。

bool this = true;
if(this)
{
   this = false;
   //other code here
}

「this」が false になると、条件が満たされないため、条件内のステートメントが実行されなくなるということですか、それともステートメント「//other code here」の残りの部分がまだ実行されるのでしょうか? 条件付きで必要なことは何でもやり終えるまで、条件付きの状態を変更しないように注意してきましたが、そもそもこれが必要かどうかに興味があります。御時間ありがとうございます。

4

1 に答える 1

2

いいえ、あなたのステートメントの条件は、[1] と書かれている時点でテストされます。if(this)その後は、好きなように値を変更でき、コードは続行されます。

この概念は、ループの最初でのみチェックされるためwhile(condition) { ... }conditionループの最初に戻るまで、コードはそこから順番に続行されます。

これを行うのはかなり一般的なパターンです。

need_print_heading = true;
lines = 0;

while(more_data)
{

    if (need_print_heading)
    {
       need_print_heading = false;
       print_heading();
    }
    print_data();
    linex++;
    if (lines > 50) need_print_heading = true;
}

[1]は C++の予約語であるためthis、表示しているコードでの使用は無効な C++ であることを意味します。thisこのコードをコンパイルするには、名前を変更する必要があります。

于 2013-07-19T12:47:00.287 に答える