for語句是我們今后編程的一個常用的語句,這個語句必須得學會其用法,他不僅僅可以用來做延時,還可以用來做一些循環運算。for語句的一般形式如下:
for(表達式1; 表達式2; 表達式3)
(需要執行的語句);
其執行過程是:表達式1首先執行且只執行一次;然后執行表達式2,通常都是一個用于判定條件的表達式,如果表達式2條件成立,就執行(需要執行的語句);然后再執行表達式3;再判斷表達式2,再執行表達式3.....一直到表達式2不成立時,跳出循環往下執行。舉個例子:
for(i = 0; i<2; i++)
j++;
這里有一個符號++,這個符號表示加1的意思。假如j最開始初值是0,首先執行表達式1的i=0,然后判斷i小于2這個條件成立,就執行一次j++,j的值就是1了,然后經過表達式3后,i的值也變成1了,再判斷條件2,還是符合,j再加一次,j變成2了,表達式3后i也變成2了,再判斷條件2,發現2<2這個條件不成立了,所以就不會再執行j++這個語句了。所以執行完畢后,j的值就是2。
for語句除了這種標準用法,還有幾種特殊用法,我們上節課的閃爍小燈對for語句的用法for(i=0; i<30000; i++) ;我們沒有加(需要執行的語句),沒有加的話,就是什么都不操作。但是什么都不操作的話,我們這個for語句循環判斷了30000次,程序執行是會用掉時間的,所以就起到了延時的作用。比如我們把30000改成20000,會發現燈的閃爍速度加快了,因為我們延時時間短了,當然,我們該成40000后會發現,閃爍慢了。但是有一點特別注意,C語言的延時時間是不能通過程序看出來的,也不會成比例,比如假如我們這個for循環里邊的表達式2使用30000的時候延時3秒的話,那么延時40000的時候,可能不會是4秒,那如何看實際延時時間呢,一會我再教大家。
還有一種寫法for( ; ; ),這樣寫后,這個for循環就變成了死循環了,就不停的執行(需要執行的語句),和我們前邊講的while(1)的意思是一樣的。那while這個語法是如何用的呢?