有人看免費的視頻嗎寧波網(wǎng)站seo診斷工具
前言:前面介紹了程序中常常用到的順序結(jié)構(gòu)和選擇結(jié)構(gòu),但是只有這兩種結(jié)構(gòu)是不夠的,還有用到循環(huán)結(jié)構(gòu)(或者稱為重復(fù)結(jié)構(gòu))。因為在日常生活中或是在程序所處理的問題中常常遇到需要重復(fù)處理的問題。
【衛(wèi)衛(wèi)衛(wèi)的代碼倉庫】
【選擇結(jié)構(gòu)】
【專欄鏈接】
while語句實現(xiàn)循環(huán)
while表達式的一般形式如下:
while(表達式) 語句
其中的語句就是循環(huán)體。循環(huán)體只能是一個語句,可是一個簡單的語句,還可以是復(fù)合語句(用花括號擴起來的若干語句)。執(zhí)行循環(huán)體的次數(shù)是由循環(huán)條件控制的,這個循環(huán)條件就是上面一般形式的表達式,它也稱為循環(huán)條件表達式。當(dāng)此表達式的值為真(以非0的值表示)時,就執(zhí)行循環(huán)體語句;為假時(以0表示)時,就不執(zhí)行循環(huán)體語句。
我們可以簡單的記為:只要當(dāng)循環(huán)條件表達式為真(即條件成立),就執(zhí)行循環(huán)體語句。
看例題:求 1 + 2 + 3 + … + 99 + 100的和
int main()
{int i = 1;int sum = 0;while (i <= 100){sum += i;i++;}printf("%d\n", sum);return 0;
}
代碼流程圖分析:
運行結(jié)果:
do…while語句實現(xiàn)循環(huán)
除了while語句以外,C語言還提供了do…while語句來實現(xiàn)循環(huán)結(jié)構(gòu)體。如:
int i = 1; //設(shè)變量i的初始值為1
do //循環(huán)結(jié)構(gòu)開始
{printf("%d",i++);//循環(huán)體
}while(i <= 100); //當(dāng)i小于等于100時,繼續(xù)執(zhí)行循環(huán)體
do … while的一般形式為:
其中的“語句”就是循環(huán)體。它的執(zhí)行過程可以用圖5.4表示。它的執(zhí)行邏輯如下圖所示:
例題:用do…while語句求 1+ 2 + 3 + … + 99 + 100的和
int main()
{int i = 1;int sum = 0;do{sum += i;i++;} while (i <= 100);printf("sum = %d\n", sum);return 0;
}
運行結(jié)果:
用for語句實現(xiàn)循環(huán)
除了while語句和do…while語句實現(xiàn)循環(huán)外,C語言還提供了for語句實現(xiàn)循環(huán),而且for語句更加靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,還可以用于循環(huán)次數(shù)不確定而只給出循環(huán)條件的情況,它可以完全代替while語句。
例如:
for (i = 1; i <= 100; i++) //控制循環(huán)次數(shù),由1變到100,共循環(huán)100次printf("%d",i); //執(zhí)行循環(huán)體,輸出i當(dāng)前值
它的執(zhí)行過程如下圖:
for語句的一般形式為:
用break提前中止循環(huán)
break語句可以用來從循環(huán)體內(nèi)部跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句。
例題:在全系1000名學(xué)生中舉行慈善捐款,當(dāng)總數(shù)達到10萬元時就結(jié)束,統(tǒng)計此時捐款的人數(shù)以及平均每人捐款的數(shù)目。
int main()
{float amount = 0.0;float ave = 0.0;float total = 0.0;int i = 0;for (i = 1; i <= 1000; i++){printf("請輸入你的捐款數(shù)額\n");scanf("%f", &amount);total += amount;if (total >= 100000){break;}}ave = total / i;printf("捐款的人數(shù)是%d:\n", i);printf("每人捐款的平均值%f\n", ave);return 0;
}
運行結(jié)果:
用continue語句提前結(jié)束本次循環(huán)
有時并不希望終止整個循環(huán)的操作,而只希望提前結(jié)束本次循環(huán),而接著執(zhí)行下次循環(huán)。這時可以用continue語句。
例題:要求輸出100 ~ 200的不能被3整除的數(shù)
int main()
{int i = 0;for (i = 100; i <= 200; i++){if (i % 3 == 0){continue;}printf("%d ", i);}printf("\n");return 0;
}
運行結(jié)果:
今天的內(nèi)容就講到這里了,如果各位覺得講的好的話麻煩給作者一個三連吧!講的不好的話也麻煩各位多多指出了,謝謝各位的觀看。