以下文章來源于:公_眾_號開源電子網
前言
在C語言中,按照程序的執行流程不同,分為順序結構、分支結構和循環結構。多么復雜的邏輯事物都是由這三個結構組成。
順序結構
順序結構是最簡單的一種流程結構,它采用自上而下的方式逐條執行各語句。簡易順序結構如下所示:
分支結構
分支結構,又稱選擇結構,可以控制程序的部分流程是否被執行,或者是從多條執行路徑種選擇一條來執行。在C語言中有兩種選擇語句:①if語句,用來實現兩個分支的選擇結構②switch語句,用來實現多分支的選擇結構。
選擇結構if,具體用法如表格所示:
if (表達式) {語句} | if (表達式) {語句1} else {語句2} |
if (表達式) { if (表達式) {語句} } else {語句} | if (表達式) {語句} else if (表達式) {語句} else {語句} |
選擇結構switch,具體使用格式如下:
switch(整型表達式)
{
case整型常量表達式1:
[語句1;break;]
case整型常量表達式2:
[語句2;break;]
case整型常量表達式3:
[語句3;break;]
…
[default:
語句n;break;]
}
在程序運行時,首先會計算整型表達式的值,然后用該值與后面的所有case標簽進行一一匹配(即查看該值是否與case標簽的表達式的值相同)。如果有匹配的case標簽,則從該case標簽起,執行后續的語句,直至遇到break語句為止。如果沒有匹配到case標簽,則從default標簽起,執行后續的語句,直到遇到break為止。
這里特別需要注意:①case后帶的表達式一定要是常數,并且是整型。②在語句后面通常是有break關鍵字。③ 最后一般有default,即前面case沒有一個符合的情況,就會調到default里執行。雖然說語法上可以允許沒有default,但是為了完整,建議是需要的。
那么if和switch這兩種選擇結構有啥區別呢?
if語句比較適用在對比條件比較復雜的且分支比較少的情況下使用;switch語句則是適用在對比條件比較簡單且分支比較多的情況下使用;正常情況下,先考慮能不能用switch語句,假如不滿足使用需求,則使用if語句。當然,不管黑貓白貓捉到老鼠的就是好貓,能實現效果即可。
循環結構
循環結構就是重復執行一個語句塊,直到不滿足某個條件為止。在C語言中有三種循環語句:①while語句②do while語句③for語句
while語句也稱while循環,具體使用格式如下:
while(表達式)
語句
while語句根據小括號內表達式的值來決定是否執行語句,當表達式的值為假時,循環結束,語句不會被執行;假如表達式的值為真,語句被執行,然后會再次判斷表達式的值,如此反復,直至表達式的值為假。
do while語句也稱do while循環,具體使用格式如下:
do
語句
while(表達式)
從結構上,由“do”關鍵字開頭,緊接著是語句也就是循環體了,最后是while關鍵字和表達式。do while語句是先執行循環體,然后再檢查條件是否成立,若成立,再執行循環體,這就是跟while語句不同。
for語句,相對前面兩個循環語句復雜一點,具體使用格式如下:
for(表達式1;表達式2;表達式3)
語句
相比前面的while和do while語句,for語句的表達式有三個,表達式之間用‘;’隔開,這三個表達式的作用和執行時期是不一樣的,具體情況如下表:
表達式 | 作用 | 執行時期 |
表達式1 | 通常在這個地方對循環變量進行初始化或賦值 | 開始時執行1次 |
表達式2 | 表達式的值為真時執行循環體,為假時結束for語句 | 循環體執行前 |
表達式3 | 通常在這個地方對循環變量進行修改,通常是加減操作 | 循環體執行后 |
具體執行流程:在for語句被執行前,首先會執行表達式1,然后再檢查表達式2的值:假如為假,不執行循環體,結束for語句;假如為真,則執行循環體語句。執行完循環語句后,再去執行表達式3,并再次去檢查表達式2的值,如此反復,直到表達式2的值為假,結束for語句。
這三個循環語句,哪種情況用哪個好呢?
如果程序中固定了循環的次數,那么就可以采用for語句。如果程序中必須執行一次程序,那么就可以使用do while語句。除了以上兩種情況,就可以使用while語句。
-
單片機
+關注
關注
6043文章
44621瀏覽量
638573 -
嵌入式
+關注
關注
5092文章
19178瀏覽量
307694 -
C語言
+關注
關注
180文章
7614瀏覽量
137720 -
電子技術
+關注
關注
18文章
917瀏覽量
56311
發布評論請先 登錄
相關推薦
評論