回顧一下do while循環(huán)
關(guān)鍵字:do while
通用形式:
do
statement
while ( expression );
示例:
do
{scanf ("%d",&number);}
while ( number != 20 );
如何選擇循環(huán)
首先要確定的是選擇入口條件循環(huán)還是出口條件循環(huán)。通常入口條件循環(huán)用的比較多,有幾個原因。
一般在執(zhí)行循環(huán)之前測試條件比較好。
測試放在程序的開頭,程序不可讀性較高
在很多應(yīng)用中,要求在一開始不滿足測試條件時就直接跳過整個循環(huán)。
那么如果需要加入一個入口條件循環(huán),該用哪一個?答案是隨便用那個。
一般而言當(dāng)循環(huán)涉及到初始化和更新變量時用for循環(huán)比較合適,其他情況下用while循環(huán)更好。對于下面這種條件,使用while循環(huán)就很合適:
while( scanf ("%ld", &num) == 1))
對應(yīng)涉及索引計數(shù)的循環(huán),用for循環(huán)更合適:
for( count = 1; count <= 100; count++)
嵌套循環(huán)
嵌套循環(huán)只在一個循環(huán)內(nèi)包含另一個循環(huán)。嵌套循環(huán)常用于按行和列顯示數(shù)據(jù),也就是說,一個循環(huán)處理一行中的所有列,另一個循環(huán)處理一行中的所有行。小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二,四六四 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
[cpp]view plaincopy
/*rows1.c?--?使用循環(huán)嵌套*/??
#include???
#define?ROWS?6??
#define?CHARS?10??
int?main?(void)??
{??
int?rows;??
char?ch;??
for(rows?=?0;?rows?<?ROWS;?rows++)??
????{??
for(ch?=?'A';?ch?<?'A'+10;?ch++)??
????????{??
printf("%c",?ch);??
?????????}???
printf("\n");??
????}??
return?0;??
}??
結(jié)果會是這樣:
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
程序中的第一個for循環(huán)被稱為外層循環(huán),第二個for循環(huán)自然叫內(nèi)層循環(huán)。只要知道內(nèi)層循環(huán)在每次外層循環(huán)迭代是都執(zhí)行完所有循環(huán)。
上一個程序中兩個循環(huán)都坐立同樣的事情,還可以通過外層循環(huán)控制內(nèi)層循環(huán),每次完成不同的任務(wù)。
[cpp]view plaincopy
/*rows2.c?--?使用循環(huán)嵌套*/??
#include???
#define?ROWS?10??
#define?CHARS?10??
int?main?(void)??
{??
int?rows;??
char?ch;??
for(rows?=?0;?rows?<?ROWS;?rows++)??
????{??
for(ch?=?('A'?+?rows);?ch?<?('A'+?CHARS);?ch++)??
????????{??
printf("%c",?ch);??
?????????}???
printf("\n");??
????}??
return?0;??
}??
結(jié)果會是這樣:
ABCDEFGHIJ
BCDEFGHIJ
CDEFGHIJ
DEFGHIJ
EFGHIJ
FGHIJ
GHIJ
HIJ
IJ
J
因為每次迭代都把rows的值與‘A’相加,所以變量ch每一次都會被賦予不同的值,理清順序就能理解其中的原理。
數(shù)組簡介
在許多程序中,數(shù)字很重要。數(shù)組可以作為一種儲存多個相關(guān)項的便利方式。書本在后面的章節(jié)中會有詳細(xì)的講解,這里說到底只是簡介,因為后面的程序會遇到一些數(shù)組,事先了解一下。
數(shù)組(array)是按順序儲存一系列類型相同的值,如10個char類型的字符或15個int類型的值或者其他的類型都可以。
float?debts [ 20 ] ;
這個聲明說明了在這是個名叫debts的float類型的數(shù)組,含有20個元素,依次儲存在內(nèi)存中的相鄰位置。其中第一個元素是debts [ 0 ]?然后以此類推到? ? ? debts [ 19 ],雖然聲明的時候是20,但這是從0開始的,一直到19。小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二,四六四 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
可以給數(shù)組元素賦值,就像這樣:debts[5] = 12.34 ;?但是假如把方括號中的下標(biāo)值輸錯了,比如debts[55] = 12.34;編譯器不會檢查下標(biāo)是否正確,但當(dāng)運行程序的時候,這會導(dǎo)致數(shù)據(jù)被放在已經(jīng)被其他數(shù)據(jù)占用的地方,可能會破壞程序結(jié)果或者直接異常中斷。還有一點,下標(biāo)必須是整數(shù)。