while ステートメント (C++)while Statement (C++)

実行ステートメントまで繰り返し0 に評価します。Executes statement repeatedly until expression evaluates to zero.

構文Syntax

while ( expression )
   statement

RemarksRemarks

テストループの各実行前に、の処理を行うのため、中にループは 0 回以上を実行します。The test of expression takes place before each execution of the loop; therefore, a while loop executes zero or more times. の整数型、ポインター型、または整数への明確な変換を持つクラス型またはポインター型である必要があります。expression must be of an integral type, a pointer type, or a class type with an unambiguous conversion to an integral or pointer type.

A中にループがときに終了することできますも、 breakgoto、またはを返すステートメント本体が実行されます。A while loop can also terminate when a break, goto, or return within the statement body is executed. 使用続行を終了する前に、現在のイテレーションを終了する、ループします。Use continue to terminate the current iteration without exiting the while loop. 引き続きの次のイテレーションに制御を渡します、ループします。continue passes control to the next iteration of the while loop.

次のコードでは、文字列から末尾をトリミングするループがアンダー スコアします。The following code uses a while loop to trim trailing underscores from a string:

// while_statement.cpp

#include <string.h>
#include <stdio.h>
char *trim( char *szSource )
{
    char *pszEOS = 0;

    //  Set pointer to character before terminating NULL
    pszEOS = szSource + strlen( szSource ) - 1;

    //  iterate backwards until non '_' is found
    while( (pszEOS >= szSource) && (*pszEOS == '_') )
        *pszEOS-- = '\0';

    return szSource;
}
int main()
{
    char szbuf[] = "12345_____";

    printf_s("\nBefore trim: %s", szbuf);
    printf_s("\nAfter trim: %s\n", trim(szbuf));
}

終了条件はループの先頭で評価されます。The termination condition is evaluated at the top of the loop. 末尾のアンダースコアがない場合、ループは実行されません。If there are no trailing underscores, the loop never executes.

関連項目See also

繰り返しステートメントIteration Statements
キーワードKeywords
do-while ステートメント (C++)do-while Statement (C++)
for ステートメント (C++)for Statement (C++)
範囲ベースの for ステートメント (C++)Range-based for Statement (C++)