首先,我們要學好循環(huán)語句就要先明白什么是循環(huán)。
我們知道,考就是一個循環(huán)往復,當還沒有考過時,我們需要不停的練,這就是循環(huán)。
2. while循環(huán)while語句
while循環(huán)由三部分組成:初始值,判斷部分,調(diào)整部分
我們已經(jīng)掌握了if語句
if (條件)
語句;
//應用
if (1)
printf("hehe");
當條件滿足的情況下,if語句后的語句執(zhí)行,否則不執(zhí)行。
但是這個語句只會執(zhí)行一次。
由于我們發(fā)現(xiàn)生活中很多的實際的例子是:同一件事情我們需要完成很多次。
那我們怎么做呢?
C語言中給我們引入了: while 語句,可以實現(xiàn)循環(huán)。
//while語法結(jié)構
while(判斷表達式)
循環(huán)語句:
如下:
while (1)
print("hehe\n");
以上代碼結(jié)果:
我們可以看到這是一個死循環(huán),這是因為我們沒有設定while循環(huán)三部分。
while語句執(zhí)行流程圖:
比如我們實現(xiàn):
在屏幕上打印1-10的數(shù)字。
int i = 1; //初始值
while (i<= 10) //判斷條件
{printf("%d\n",i);
i++; //調(diào)整部分
}
2.1 while語句break和continue代碼結(jié)果:1 2 3 4 5 6 7 8 9 10
int i = 1; //初始值
while (i<= 10) //判斷條件
{if (i == 5)
break;
printf("%d ",i);
i++; //調(diào)整部分
}
return 0;
代碼結(jié)果:1 2 3 4
代碼執(zhí)行了四次之后,第五次進入循環(huán)時,遇到了break跳出了循環(huán)。
其實在循環(huán)中只要遇到break,就停止后期的所有的循環(huán),直接終止循環(huán)。
所以:while中的break是用于永久終止循環(huán)的。
了解了break,再了解continue就非常簡單了。
在while循環(huán)中,continue的作用是跳過本次循環(huán)。
跳轉(zhuǎn)到while語句的判斷部分,進行下一次循環(huán)入口處的判斷。
我們來看continue的實際應用來加強對continue的理解
getchar獲取一個字符
putchar輸出一個字符
end of file縮寫EOF —文件結(jié)束標志
#includeint main()
{int ch = 0;
//getchar獲取一個字符放到ch里,!=檢查兩個操作數(shù)的值是否相等,如果不相等則條件為真
while ((ch = getchar()) != EOF)
{if (ch< '0' || ch >'9')
continue;
putchar(ch);
}
return 0;
}
這個代碼的用途是:打印數(shù)字字符,而跳過其它的字符
我們已經(jīng)知道了while循環(huán),但是我們?yōu)槭裁催€要一個for循環(huán)呢?
首先來看看for循環(huán)的語法
for語法:
for(表達式1; 表達式2; 表達式3)
循環(huán)語句;
表達式1為初始化部分,用于初始化循環(huán)變量的。
表達式2為條件判斷部分,用于判斷循環(huán)時候終止。
表達式3為調(diào)整部分,用于循環(huán)條件的調(diào)整。
同樣也用for循環(huán)在屏幕上打印1-10的數(shù)字。
#includeint main()
{int i = 0;
for (i = 1; i<= 10; i++)
{printf("%d ",i);
}
return 0;
}
代碼結(jié)果:1 2 3 4 5 6 7 8 9 10
我們發(fā)現(xiàn)在for循環(huán)中也可以出現(xiàn)break和continue,他們的意義和在while循環(huán)中是一樣的。
但是還是有些差異:
#includeint main()
{int i = 0;
for (i = 1; i<= 10; i++)
{if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
3.3 for語句的循環(huán)控制變量執(zhí)行結(jié)果:1 2 3 4 6 7 8 9 10
這里我們有兩點需要注意的點:
第一點:不可在for 循環(huán)體內(nèi)修改循環(huán)變量,防止 for 循環(huán)失去控制。
第二點:建議for語句的循環(huán)控制變量的取值是”前閉后開的“。舉個例子。
#includeint main()
{int arr[10] = {0 };
int i = 0;
for (i = 0; i<10; i++) //這里的初始值"="就是閉區(qū)間,判斷部分的"<"就是開區(qū)間
{printf("%d ", arr[i]);
}
return 0;
}
for循環(huán)中的初始化部分,判斷部分,調(diào)整部分是可以省略的,但是不建議初學時省略,容易導致問題。
#includeint main()
{//代碼1
//判斷部分的省略 - 判斷部分恒為真,可能會導致死循環(huán)
for (;;)
{printf("hehe\n");
}
//代碼2
int i = 0;
int j = 0;
int count = 0;
//這里打印多少個呵呵
for (i=0; i< 3; i++)
{for (j=0; j< 3; j++)
{ printf("hehe\n");
count++;
}
}
printf("count = %d\n",count);
//代碼3
int i = 0;
int j = 0;
int count = 0;
//如果省略初始值,這里打印多少個hehe
for (; i< 3; i++)
{for (; j< 3; j++)
{ printf("hehe\n");
}
}
printf("count = %d\n",count);
//代碼4
int x, y;
for (x = 0, y = 0; x< 2 && y< 5; ++x, y++)
{printf("hehe\n");
}
return 0;
}
有興趣的可以自己去編譯器試一下
4. do-while循環(huán)do-while語法:
do
循環(huán)語句;
while(表達式);
4.1執(zhí)行流程圖4.2 do語句的特點同樣也用do-while循環(huán)在屏幕上打印1-10的數(shù)字。
循環(huán)至少執(zhí)行一次,使用的場景有限,所以不是經(jīng)常使用。
#includeint main()
{int i = 1;
do
{printf("%d ", i);
i++;
} while (i<=10);
return 0;
}
while后的分號";"不可缺少。
4.3 do while循環(huán)中的break和continue和while里的用法一致。
5.總結(jié)上述三種循環(huán)語句的使用頻率從大到小依次是:
for>while>do-while
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧