3 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
while()是循環(huán)語(yǔ)句。
while(expr)表示當(dāng)邏輯表達(dá)式expr為真時(shí),循環(huán)運(yùn)行循環(huán)體,直到expr值為假或遇到break語(yǔ)句時(shí)退出。
!x是邏輯非操作,當(dāng)x為0時(shí),值為真,否則值為假。 在這里等效于x==0。
在while(!x)后面有一個(gè)分號(hào),表示該循環(huán)的循環(huán)體為空,即只做判斷和循環(huán),并不執(zhí)行操作。
于是這句的意思就是,如果x為0,則一直循環(huán)下去,不做操作,否則繼續(xù)執(zhí)行。
如果沒(méi)有其它線程來(lái)改變x的值,那么這里就是一個(gè)死循環(huán)了。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
while(!x)后面有一個(gè)分號(hào),表示該循環(huán)的循環(huán)體為空,即只做判斷和循環(huán),并不執(zhí)行操作。
!是反運(yùn)算符,單目,!真 即 假,!假 即 真。
如果x != 0, 則 !x 為 0,即假,如果x == 0,則 !x 為 真。
while()是循環(huán)語(yǔ)句。
while(expr)表示當(dāng)邏輯表達(dá)式expr為真時(shí),循環(huán)運(yùn)行循環(huán)體,直到expr值為假或遇到break語(yǔ)句時(shí)退出。
!x是邏輯非操作,當(dāng)x為0時(shí),值為真,否則值為假。 在這里等效于x==0。

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
!是反運(yùn)算符,單目,!真 即 假,!假 即 真。
如果x != 0, 則 !x 為 0,即假,如果x == 0,則 !x 為 真。
while循環(huán)和 do-while 循環(huán)的區(qū)別在于,while是先檢查是否復(fù)合條件再循環(huán),而do-while循環(huán)則是在循環(huán)體尾檢查是否符合條件,這就說(shuō)明,do-while循環(huán)內(nèi)的語(yǔ)句至少被執(zhí)行一次。
這好比下面的例子
do{
吃一個(gè)三明治 ←←←←← Statement;
我餓嗎?(餓,再吃一個(gè)三明治↑)(不餓,退出循環(huán)↓) }while();
←←←←←←←←←
這就意味著,你至少得吃一個(gè)三明治。
如果使用while循環(huán),則像下面這樣
我餓嗎?(餓,吃↓)(不餓↓) while() {
吃一個(gè)三明治 ← ↓ statement;}
←
這說(shuō)明,你不一定吃一個(gè)三明治。
這就是while跟do-while的區(qū)別。。。=、=
添加回答
舉報(bào)