C语言的循环语句
C語(yǔ)言的循環(huán)語(yǔ)句有 while ,for, do while
文章目錄
- 一、while
- 1.while 語(yǔ)句的語(yǔ)法形式
- 2、while 語(yǔ)句中的 break 和 continue
- (1)break
- (2)continue
- 二、for
- 1、for 語(yǔ)句的語(yǔ)法形式
- 2、for 語(yǔ)句中的 break 和 continue
- (1)break
- (2) continue
- 3、for 循環(huán)的 3 個(gè)表達(dá)式都可以省略
- 三、do while
- 1、do while 語(yǔ)句的語(yǔ)法形式
- 2、do while 語(yǔ)句中的 break 和 continue
- (1)break
- (2)continue
- 四、一些習(xí)題
- 1、計(jì)算 n 的階乘
- 2、計(jì)算1!+ 2!+ ... + 10!
一、while
1.while 語(yǔ)句的語(yǔ)法形式
while (表達(dá)式)語(yǔ)句;while 語(yǔ)句的執(zhí)行流程:先判斷表達(dá)式,如果為真,執(zhí)行語(yǔ)句,然后后在判斷表達(dá)式。重復(fù)進(jìn)行,如果表達(dá)式為假,則退出循環(huán),不再執(zhí)行
用 while 循環(huán)輸出1 ~ 10 #include <stdio.h>int main() {int i = 1;while (i <= 10){printf("%d ", i);i++;}return 0; }2、while 語(yǔ)句中的 break 和 continue
(1)break
while 語(yǔ)句中如果執(zhí)行 break 則會(huì)直接跳出循環(huán)
程序輸出什么呢?
#include <stdio.h> int main() {int i = 1;while (i <= 10){if (i % 5 == 0)break;printf("%d ", i);i++;}return 0; }程序輸出 1 2 3 4
(2)continue
while 語(yǔ)句中執(zhí)行 continue 時(shí)會(huì)跳過(guò) continue 后面循環(huán)體的語(yǔ)句,來(lái)到判斷表達(dá)式
程序輸出什么呢?
#include <stdio.h> int main() {int i = 1;while (i <= 10){if (i % 5 == 0)continue;printf("%d ", i);i++;}return 0; }程序輸出1 2 3 4 后死循環(huán)
二、for
1、for 語(yǔ)句的語(yǔ)法形式
for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3)語(yǔ)句;
for 語(yǔ)句的執(zhí)行流程:先執(zhí)行表達(dá)式1,然后判斷表達(dá)式2,如果為真,執(zhí)行語(yǔ)句,然后執(zhí)行表達(dá)式3,接著判斷表達(dá)式2,重復(fù)進(jìn)行,如果表達(dá)式2為假,則退出循環(huán),不再執(zhí)行
通常,表達(dá)式1為循環(huán)變量賦一個(gè)初識(shí)值,表達(dá)式2作為是否執(zhí)行循環(huán)的條件,表達(dá)式3改變循環(huán)變量的值,避免循環(huán)一直執(zhí)行下去
用 for 循環(huán)輸出1 ~ 10 #include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++){printf("%d ", i);}return 0; }2、for 語(yǔ)句中的 break 和 continue
(1)break
for 語(yǔ)句中如果執(zhí)行 break 則會(huì)直接跳出循環(huán)
程序輸出什么呢 ?
#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++){if (i % 5 == 0)break;printf("%d ", i);}return 0; }程序輸出 1 2 3 4
(2) continue
for 語(yǔ)句執(zhí)行 continue 會(huì)跳過(guò) continue 后面循環(huán)體內(nèi)的語(yǔ)句,來(lái)到表達(dá)式3,然后判斷表達(dá)式2,繼續(xù)循環(huán)
程序輸出什么呢?
#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++){if (i % 5 == 0)continue;printf("%d ", i);}return 0; }程序輸出1 2 3 4 6 7 8 9
3、for 循環(huán)的 3 個(gè)表達(dá)式都可以省略
for(;;)分號(hào)不能省略
省略表達(dá)式2時(shí):此時(shí)循環(huán)永真
三、do while
1、do while 語(yǔ)句的語(yǔ)法形式
do 語(yǔ)句; while (表達(dá)式);
無(wú)論條件如何都會(huì)執(zhí)行一次語(yǔ)句
先執(zhí)行語(yǔ)句,然后判斷表達(dá)式,如果表達(dá)式為真,執(zhí)行語(yǔ)句,重復(fù)進(jìn)行,如果表達(dá)式為假,則退出循環(huán)
用 do while 循環(huán)輸出 1 ~ 10 #include <stio.h>int main() {int i = 1;do{printf("%d ", i);i++;}while (i <= 10);return 0; }2、do while 語(yǔ)句中的 break 和 continue
(1)break
do while 中如果執(zhí)行 break 則會(huì)直接跳出循環(huán)
程序輸出什么呢?
#includ <stdio.h>int main() {int i = 1;do{if (i % 5 == 0)break;printf("%d ", i);i++;} while (i <= 10);return 0; }程序輸出 1 2 3 4
(2)continue
do while 語(yǔ)句執(zhí)行continue 會(huì)跳過(guò) continue 后面循環(huán)體內(nèi)的語(yǔ)句,來(lái)到判斷表達(dá)式
程序輸出什么呢?
#includ <stdio.h>int main() {int i = 1;do{if (i % 5 == 0)continue;printf("%d ", i);i++;} while (i <= 10);return 0; }輸出1 2 3 4 后死循環(huán)
四、一些習(xí)題
1、計(jì)算 n 的階乘
#inlcude <stdio.h>int main() {int i = 0;int ret = 1;int n = 0;scanf("%d", &n);for (i = 2; i <= n; i++){ret *= i;}printf("%d\n", ret);return 0; }2、計(jì)算1!+ 2!+ … + 10!
#include <stdio.h>int main() {int i = 0;int ret = 1;int sum = 0;for (i = 1; i <= 10; i++){ret *= i;sum += ret;}printf("%d\n", sum);return 0; }goto 語(yǔ)句也可以實(shí)現(xiàn)循環(huán),但是可以用上述的循環(huán)語(yǔ)句替代
for 循環(huán)其實(shí)是 while 循環(huán)的一種常用方式的簡(jiǎn)寫(xiě),在需要賦初值和調(diào)整循環(huán)變量的語(yǔ)句時(shí),他比 while 循環(huán)的效果更好,for 循環(huán)將循環(huán)變量的初值,循環(huán)條件,以及循環(huán)變量的調(diào)整放在一起,當(dāng)循環(huán)語(yǔ)句較多時(shí),比使用while語(yǔ)句更方便的管理
總結(jié): 三種循環(huán)都可以使用 break 和continue 語(yǔ)句,他們的作用有一點(diǎn)點(diǎn)的差別,根據(jù)應(yīng)用場(chǎng)景選擇合適的循環(huán)語(yǔ)句
總結(jié)
- 上一篇: Winfrom 桌面弹窗拦截 关闭进
- 下一篇: Cadence Allegro PCB各