|
C語(yǔ)言for循環(huán)語(yǔ)句
for 語(yǔ)句是我們今后編程的一個(gè)常用的語(yǔ)句,這個(gè)語(yǔ)句必須得學(xué)會(huì)其用法,它不僅僅可以用來(lái)做延時(shí),更重要的是用來(lái)做一些循環(huán)運(yùn)算。for 語(yǔ)句的一般形式如下:
for( 表達(dá)式1; 表達(dá)式2; 表達(dá)式3 ){
// 需要執(zhí)行的語(yǔ)句;
}
其執(zhí)行過(guò)程是:表達(dá)式 1 首先執(zhí)行且只執(zhí)行一次;然后執(zhí)行表達(dá)式 2,通常都是一個(gè)用于判定條件的表達(dá)式,如果表達(dá)式 2 條件成立,就執(zhí)行(需要執(zhí)行的語(yǔ)句);然后再執(zhí)行表達(dá)式 3;再判斷表達(dá)式 2,執(zhí)行(需要執(zhí)行的語(yǔ)句);再執(zhí)行表達(dá)式 3.....一直到表達(dá)式 2 不成立時(shí),跳出循環(huán)繼續(xù)執(zhí)行循環(huán)后面的語(yǔ)句。舉個(gè)例子:
for( i=0; i<2; i++ ){
j++;
}
這里有一個(gè)符號(hào)++,我們剛剛講過(guò)了。假如 j 最開(kāi)始初值是 0,首先執(zhí)行表達(dá)式 1 的 i=0,然后判斷 i 小于 2 這個(gè)條件成立,就執(zhí)行一次 j++,j 的值就是 1 了,然后經(jīng)過(guò)表達(dá)式 3 后,i的值也變成 1 了,再判斷條件 2,還是符合,j 再加一次,j 變成 2 了,再經(jīng)過(guò)表達(dá)式 3 后 i也變成 2 了,再判斷條件 2,發(fā)現(xiàn) 2<2 這個(gè)條件不成立了,所以就不會(huì)再執(zhí)行 j++這個(gè)語(yǔ)句了。所以執(zhí)行完畢后,j 的值就是 2。
for 語(yǔ)句除了這種標(biāo)準(zhǔn)用法,還有幾種特殊用法,比如我們上節(jié)課的閃爍小燈對(duì) for 語(yǔ)句的用法 for(i=0; i<30000; i++) ;我們沒(méi)有加(需要執(zhí)行的語(yǔ)句),沒(méi)有加的話,就是什么都不操作。但是什么都不操作的話,我們這個(gè) for 語(yǔ)句循環(huán)判斷了 30000 次,程序執(zhí)行是會(huì)用掉時(shí)間的,所以就起到了延時(shí)的作用。比如我們把 30000 改成 20000,會(huì)發(fā)現(xiàn)燈的閃爍速度加快了,因?yàn)槲覀冄訒r(shí)時(shí)間短了,當(dāng)然,我們改成 40000 后會(huì)發(fā)現(xiàn),閃爍慢了。但是有一點(diǎn)特別注意,C 語(yǔ)言的延時(shí)時(shí)間是不能通過(guò)程序看出來(lái)的,也不會(huì)成比例,比如我們這個(gè) for 循環(huán)里邊的表達(dá)式 2 使用 30000 時(shí)延時(shí)是 3 秒的話,那么改成 40000 的時(shí)候,可能不是 4 秒,那如何看實(shí)際延時(shí)時(shí)間呢,一會(huì)我再教大家。
還有一種寫(xiě)法 for( ; ; ),這樣寫(xiě)后,這個(gè) for 循環(huán)就變成了死循環(huán)了,就不停的執(zhí)行(需要執(zhí)行的語(yǔ)句),和while(1)的意思是一樣的了 |
|