?
このドキュメントでは、 php中國語ネットマニュアル リリース
重復執(zhí)行語句,直到表達式的值變?yōu)榱恪y試發(fā)生在每次迭代之前。
while(表達式)語句 |
---|
表達 | - | 標量類型的任何表達式。該表達式在每次迭代之前進行評估,如果它比較等于零,則退出循環(huán)。 |
---|---|---|
聲明 | - | 任何語句,通常是復合語句,作為循環(huán)的主體 |
甲while
語句導致語句(也稱為循環(huán)體)時要執(zhí)行多次,直到表達(也稱為控制表達)進行比較等于零。無論循環(huán)體是正常輸入還是跳轉(zhuǎn)到語句中間,都會發(fā)生重復。
表達式的評估發(fā)生在每次執(zhí)行語句之前(除非由goto輸入)。如果需要在循環(huán)體之后評估控制表達式,則可以使用do-while循環(huán)。
如果循環(huán)的執(zhí)行需要在某個時候終止,break語句可以用作終止語句。
如果需要在循環(huán)體的末尾繼續(xù)執(zhí)行循環(huán),則可以使用continue語句作為快捷方式。
如果循環(huán)在其語句或表達式的任何部分中沒有可觀察的行為(I / O,易失性訪問,原子操作或同步操作),則具有無限循環(huán)的程序具有未定義的行為。這允許編譯器優(yōu)化所有不可觀察的循環(huán),而不會證明它們終止。唯一的例外是表達式是常量表達式的循環(huán); while(true)
總是一個無止境的循環(huán)。
與所有其他選擇和迭代語句一樣,while語句可以建立塊范圍:表達式中引入的任何標識符在語句后超出范圍。 | (自C99以來) |
---|
布爾和指針表達式經(jīng)常用作循環(huán)控制表達式。false
任何指針類型的布爾值和空指針值都等于零。
while
.
#include <stdio.h>#include <stdlib.h>#include <string.h>enum { SIZE = 8 };int main(void){ // trivial example int array[SIZE], n = 0; while(n < SIZE) array[n++] = rand() % 2; puts("Array filled!"); n = 0; while(n < SIZE) printf("%d ", array[n++]); printf("\n"); // classic strcpy() implementation // (copies a null-terminated string from src to dst) char src[]="Hello, world", dst[sizeof src], *p=dst, *q=src; while(*p++ = *q++) ; // null statement puts(dst);}
輸出:
Array filled!1 0 1 1 1 1 0 0 Hello, world
C11標準(ISO / IEC 9899:2011):
6.8.5.1 while語句(p:151)
C99標準(ISO / IEC 9899:1999):
6.8.5.1 while語句(p:136)
C89 / C90標準(ISO / IEC 9899:1990):
3.6.5.1 while語句