您好,登錄后才能下訂單哦!
本篇內容介紹了“C語言中分支和循環的實現形式有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
C語言里,0表示假,非0表示真。
比如:-1為真。
if語句的特點是:
實現分支效果。
格式是:if(條件) {語句列表1} else {語句列表2}
語句列表可以是1條或多條語句。
如果條件為真,執行語句列表1,否則執行語句列表2。
如果語句列表只有1條語句,則可以省略大括號。
else可以省略。
比如求2個數的較大值:
if (a > b) { max = a; } else { max = b; }
由于語句列表如果只有1條語句,可以省略大括號,所以也可以這么寫:
if (a > b) max = a; else max = b;
switch語句的特點是:
實現分支效果。
格式是:
switch (整型常量表達式)
{
case 整型常量1:
{語句列表1}
case 整型常量2:
{語句列表2}
case 整型常量3:
{語句列表3}
// ...
default:
{語句列表n}
}
語句列表表示1條或多條語句,外面的大括號可以省略。
“標簽”分為一堆case和default。
“整型常量表達式”的結果是幾,就會從case幾進去。
如果所有的case都進不去,就從default位置進去。
一旦“進去”,就會一直往下執行所有的代碼(此時會無視掉所有的“標簽”)。
執行時如果遇到break,就會跳出switch語句。
例子1:輸入幾,就打印星期幾。如果輸入的不是1~7,打印“輸入錯誤”。
int n = 0; scanf("%d", &n); switch(n) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; // ... case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; default: printf("輸入錯誤\n"); break; }
n是幾,就會從case幾進去,接著往下執行,遇到break就跳出switch語句。
注意一旦所有的case都匹配不上,就會走default。
while循環的特點是:
格式:while (條件) {語句列表}
如果條件為真,就會執行語句列表,執行完后繼續判斷條件是否為真,如果為真就繼續執行,以此類推。知道某一次判斷時條件為假,就跳出循環。
如果語句列表只有1條語句,則大括號可以省略。
如果遇到break,會直接跳出循環。
如果遇到continue,則會直接跳轉到循環的判斷部分。
例子:打印1~10。
int i = 1; while (i <= 10) { printf("%d ", i); ++i; }
如果有break,就會直接跳出循環,比如:
int i = 1; while (i <= 10) { if (i == 5) break; printf("%d ", i); ++i; }
上面的代碼中,當i為5時跳出循環,此時屏幕上只打印了1~4。
如果遇到continue,會直接跳轉到判斷部分。如:
int i = 1; while (i <= 10) { if (i == 5) continue; printf("%d ", i); ++i; }
上面的代碼中,當i為5時,會直接跳轉到判斷部分,此時i仍然是5,又遇到continue,跳轉到判斷部分,由于++i一直沒有機會執行,所以無限循環了。
for循環的特點是:
格式:for (初始化語句; 判斷表達式; 調整語句) {語句列表}
語句列表可以是1條或多條語句,如果是1條語句,大括號可以省略。
首先執行初始化,接著判斷,如果為真,就執行語句列表,執行完后,調整,再判斷,如果為真,就執行語句列表,再調整,再判斷,直到某次判斷條件為假跳出循環。
遇到break直接跳出循環。
遇到continue,跳轉到調整語句。
例子:打印1~10。
for (int i=1; i<=10; ++i) { printf("%d ", i); }
如果遇到break,就直接跳出循環。如:
for (int i=1; i<=10; ++i) { if (i == 5) break; printf("%d ", i); }
上面的代碼中,當i為5時,跳出循環。屏幕上只打印1~4。
如果遇到continue,就直接跳轉到調整部分。如:
for (int i=1; i<=10; ++i) { if (i == 5) continue; printf("%d ", i); }
上面的代碼中,當i為5時,直接跳轉到++i,i變成6,后面正常執行。輸出結果是,屏幕上打印1~10但是不包括5。
do while循環的特點是:
格式:do{語句列表}while(條件);
語句列表可以是1條或多條語句,如果只有1條語句,可以省略大括號。
首先執行語句列表,再判斷條件是否為真,如果為真就再次執行語句列表,執行完后再判斷,直到條件為假,跳出循環。
遇到break直接跳出循環。
遇到continue跳轉到判斷部分。
例子:打印1~10。
int i = 1; do { printf("%d ", i); ++i; } while (i <= 10);
如果遇到break就會直接跳出循環。如:
int i = 1; do { if (i == 5) break; printf("%d ", i); ++i; } while (i <= 10);
上面的代碼中,由于當i為5時就跳出了循環,屏幕上只打印了1~4。
如果遇到continue就跳轉到判斷部分。如:
int i = 1; do { if (i == 5) continue; printf("%d ", i); ++i; } while (i <= 10);
當i為5時,跳轉到判斷部分,由于i仍然是5,會重新進入循環,此時又會跳轉到判斷部分,就無限循環了。
goto語句會直接跳轉到標記處。注意,goto語句不能跨函數跳轉。
如:打印1~10。
int i = 1; again: printf("%d ", i); ++i; if (i <= 10) goto again;
上面的代碼中,如果i沒有超過10,就會跳轉到again處。
“C語言中分支和循環的實現形式有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。