溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C言語(yǔ)while輪回語(yǔ)句

發(fā)布時(shí)間:2020-08-09 04:29:16 來(lái)源:網(wǎng)絡(luò) 閱讀:367 作者:yuw2018 欄目:網(wǎng)絡(luò)安全

在單片機(jī) C 言語(yǔ)編程的時(shí)分,每一個(gè)程序我們都邑固定的加一句 while(1),這條語(yǔ)句就可以起到死輪回的感化。關(guān)于 while 語(yǔ)句來(lái)說(shuō),他的普通方式是:
while (表達(dá)式){
    輪回體語(yǔ)句;
}
在 C 言語(yǔ)里,平日表達(dá)式契合前提,我們叫做真,不契合前提,叫做假。比方前邊 i<30000,當(dāng) i 等于 0 的時(shí)分,那這個(gè)前提成立,就是真;假如 i 大于 30000 的時(shí)分,前提不成立,就叫做假。
while(表達(dá)式)這個(gè)括號(hào)里的表達(dá)式,為真的時(shí)分,就會(huì)履行輪回體語(yǔ)句,當(dāng)為假的時(shí)分,就不履行。在這里先不舉例,后邊碰到時(shí)再具體闡明。
還有別的一種狀況,就是我們 C 言語(yǔ)里邊,除了表達(dá)式外,還有常數(shù),習(xí)氣上,我們把非 0 的常數(shù)都以為是真,只要 0 以為是假,所以我們程序中運(yùn)用了 while(1),這個(gè)數(shù)字 1,可以改成 2、3、4......等等都可以,多是一個(gè)死輪回,一直的履行輪回體的語(yǔ)句,然則假如把這個(gè)數(shù)字改成 0,那么就不會(huì)履行輪回體的語(yǔ)句了。
人人經(jīng)過(guò)進(jìn)修 for 輪回和 while 輪回,是不是會(huì)發(fā)生一個(gè)疑問(wèn)?為何有的輪回加上{},而有的輪回卻沒加呢?什么時(shí)分需求加,什么時(shí)分不需求加呢?
我們前邊講過(guò),在 C 言語(yǔ)中,分號(hào)表現(xiàn)語(yǔ)句的完畢,而在輪回語(yǔ)句里{}表現(xiàn)的是輪回體的一切語(yǔ)句,假如不加大括號(hào),則只輪回履行一條語(yǔ)句,即第一個(gè)分號(hào)之前的語(yǔ)句,而加上大括號(hào)后,則會(huì)履行大括號(hào)中一切的語(yǔ)句,舉個(gè)例子看一下吧,上節(jié)課的閃耀小燈程序如下所示。
程序一:

			while (1){ LED = 0; for(i=0;i<30000;i++); LED = 1; for(i=0;i<30000;i++); }


程序二:

			while (1) LED = 0; for(i=0;i<30000;i++); LED = 1; for(i=0;i<30000;i++);


程序一就是我們上節(jié)課的程序,直接可以完成閃耀功用。而程序二沒有加大括號(hào),從語(yǔ)法下去看是沒有任何毛病的,寫到 Keil 里編譯一下也不會(huì)報(bào)錯(cuò)。然則從邏輯下去講,程序二只會(huì)一直的輪回“LED = 0;”這條語(yǔ)句,實(shí)踐上和程序三后果是相反的。
程序三:

			while(1){ LED = 0; } for(i=0;i<30000;i++); LED = 1; for(i=0;i<30000;i++);


程序履行到 while(1)曾經(jīng)進(jìn)入死輪回了,所今后邊三條語(yǔ)句是一輩子也履行不到的。因而為了避免出相似的邏輯毛病,我們引薦,不論輪回語(yǔ)句后邊是一條照樣多條語(yǔ)句,都加上{}以防失足


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI