迭代语句
文章目錄
- 1 迭代語句
- 2 迭代語句之for語句
- 2.1 for語句的執(zhí)行效果
- 2.2 實(shí)例解析
- 3 迭代語句之while語句
- 3.1 while語句的執(zhí)行效果
- 3.2 實(shí)例分析
- 4 迭代語句之do語句
- 4.1 do語句的執(zhí)行流程
- 4.2 實(shí)例分析
- 4.3 do while語句的妙用
1 迭代語句
迭代語句分為3種:while語句、do語句、for語句。
迭代語句中的表達(dá)式,我們又稱之為控制表達(dá)式:
- 迭代語句的執(zhí)行效果是由它的值來決定的。
- 值 != 0 :執(zhí)行循環(huán)體。
- 值 = 0 :跳轉(zhuǎn)到迭代語句的后面,繼續(xù)向下執(zhí)行。
迭代語句中的子語句,我們稱之為循環(huán)體:
- 每次循環(huán)體執(zhí)行完以后,都要重新求值控制表達(dá)式。
- 然后,再次根據(jù)控制表達(dá)式的值決定接下來的執(zhí)行效果。
2 迭代語句之for語句
2.1 for語句的執(zhí)行效果
第1步:執(zhí)行第1個(gè)表達(dá)式或聲明,然后執(zhí)行第2步(當(dāng)?shù)?個(gè)表達(dá)式被省略時(shí):直接執(zhí)行第2步)。
第2步:執(zhí)行第2個(gè)表達(dá)式(控制表達(dá)式)。
- 值 = 0 :跳轉(zhuǎn)到for語句的后面,繼續(xù)向下執(zhí)行(結(jié)束)。
- 值 != 0 :執(zhí)行子語句(循環(huán)體) --> 執(zhí)行第3個(gè)表達(dá)式 --> 重新回到第2步(循環(huán))(當(dāng)?shù)?個(gè)表達(dá)式被省略時(shí):直接重新回到第2步)。
當(dāng)控制表達(dá)式被省略時(shí):C實(shí)現(xiàn)將使用一個(gè)值 != 0 的常量來填充。結(jié)果就是:無限循環(huán)/死循環(huán)。
2.2 實(shí)例解析
int main (void) {for(int i = 0; i<5; i++) ; }第1個(gè)表達(dá)式或聲明:通常用于聲明或初始化一個(gè)變量,用作計(jì)數(shù)器。
第2個(gè)表達(dá)式:通常根據(jù)計(jì)數(shù)器的值來決定是否進(jìn)入循環(huán)。
第3個(gè)表達(dá)式:通常使用遞增或者遞減來控制計(jì)數(shù)器的值。
3 迭代語句之while語句
3.1 while語句的執(zhí)行效果
執(zhí)行控制表達(dá)式:
- 控制表達(dá)式的值 != 0 :執(zhí)行循環(huán)體,然后回到開始處執(zhí)行(循環(huán))。
- 控制表達(dá)式的值 = 0 :跳轉(zhuǎn)到while語句的后面,繼續(xù)向下執(zhí)行(結(jié)束)。
3.2 實(shí)例分析
#include <stdio.h>int main(void) {int a = 100;while (a){printf("123456");a--;} }4 迭代語句之do語句
4.1 do語句的執(zhí)行流程
第1步:執(zhí)行循環(huán)體。
第2步:執(zhí)行控制表達(dá)式。
- 值 = 0 :跳轉(zhuǎn)到do語句的后面,繼續(xù)向下執(zhí)行(結(jié)束)。
- 值 != 0 :重新回到第1步(循環(huán))。
4.2 實(shí)例分析
#include <stdio.h>int main(void) {int a = 100;do{printf("123456");a--;}while (a);}4.3 do while語句的妙用
示例代碼如下:
int func(int n) {int i = 0;int ret = 0;int* p = (int*)malloc(sizeof(int) * n);do{if( NULL == p ) break;if( n < 5 ) break;if( n > 100) break;for(i=0; i<n; i++){p[i] = i;printf("%d\n", p[i]);}ret = 1;}while( 0 );printf("free(p)\n");free(p);return ret; }參考資料:
總結(jié)
- 上一篇: 角速度与线速度有什么关系(公式是什么)
- 下一篇: 块