循環語句:數組
1:for循環spa
格式:code
for(語句1;判斷語句;語句2) {循環體;}
執行順序: 先執行語句一,接着進入判斷語句,若不知足判斷語句則不執行語句二直接退出循環. 若知足判斷語句, 則執行語句二,再接着進行判斷語句.直至不知足判斷語句退出循環.blog
特色: 語句一隻執行一次 , for 循環中的語句均可覺得空(此時爲一個死循環),可是格式(; ; ;)不能少.同時要注意判斷語句中的變量,要在語句二中進行自增或自減.input
死循環格式:it
for(語句一; ; 語句二){循環體;}//注意";"不能少.
2:while循環io
格式:for循環
while(判斷語句) { 循環體; }
執行順序:先執行判斷語句,若爲真則將進入循環體,每執行一次循環體須要進行一次判斷,不知足則退出循環.class
死循環格式: 變量
while(1){循環體;}
3: do while循環
格式:
do { 循環體; }while(判斷語句)
特色: 先進入循環體,再進行判斷正好和while 循環相反.
死循環格式:
do {循環體;} while(1);
分支語句:
1:if else 分支語句
格式:
if(判斷語句) { 語句1;} else { 語句2;}
進入分支語句時看是否知足判斷語句,若知足則執行語句一,不然執行語句二.
注: 當多個if else 語句嵌套時,else 老是向上和未和else結合的if相結合
2:switch 分支語句
格式:
switch (整型變量表達式)//switch的參數類型不能float,double等類型,只能爲整型類型. { case 常量1 : 語句1; break;//break用於跳出switch語句. case 常量2 : 語句2; break;//case的標籤必須爲常量表達式,且必須惟一 //如 case a>b: ... (error,不是常量表達式) // case 常量1:... // case 常量1:..(將報錯,常量表達式不惟一) case 常量3 : 語句3; break; ... default : 語句n;break;//若都不符合則進入default. }
整型變量表達式知足常量 i ,則執行 語句 i,若全都不知足則進入default,執行語句n.
注:由於switch要求參數類型只能爲整型類型,因此極大的限制了switch的使用狀況.當數據類型不知足時須要使用if語句.
趣味練習:定義一個二維數組,經過循環和分支語句,實如今屏幕上打印0-9.
代碼以下:
#include<stdio.h>
#include<assert.h>
void Init_ar(int br[5][3],int row ,int col,int*cr)//利用循環對數組進行賦值 { assert(br != nullptr); int t = 0; for (int i = 0; i < row; i++)// { for (int j = 0; j < col; j++) { if (cr[t]==1)//經過判斷是否爲1,來對數組元素進行賦值操做 { br[i][j] = '*'; t++; } else { br[i][j] = ' '; t++; } } } } void Print_ar(const int br[5][3], int row, int col)//利用循環打印二維數組 { assert(br != nullptr); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%c", br[i][j]);//打印數組元素對應的字符 } printf("\n");//控制換行 } printf("\n"); } int main() { int ar[5][3] = {}; int cr0[] = { 1,1,1,1,0,1,1,0,1,1,0,1,1,1,1 };//經過指定0和1,打印出咱們想要的效果. int cr1[] = { 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 }; int cr2[] = { 1,1,1,0,0,1,1,1,1,1,0,0,1,1,1 }; int cr3[] = { 1,1,1,0,0,1,1,1,1,0,0,1,1,1,1 }; int cr4[] = { 1,0,1,1,0,1,1,1,1,0,0,1,0,0,1 }; int cr5[] = { 1,1,1,1,0,0,1,1,1,0,0,1,1,1,1 }; int cr6[] = { 1,1,1,1,0,0,1,1,1,1,0,1,1,1,1 }; int cr7[] = { 1,1,1,0,0,1,0,0,1,0,0,1,0,0,1 }; int cr8[] = { 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 }; int cr9[] = { 1,1,1,1,0,1,1,1,1,0,0,1,1,1,1 }; int n = 0; printf("input a number(0-9):");//輸入想打印的數字 scanf_s("%d", &n); switch (n)//switch 多分支語句 { case 0:Init_ar(ar, 5, 3, cr0); Print_ar(ar, 5, 3); break; case 1:Init_ar(ar, 5, 3, cr1); Print_ar(ar, 5, 3); break; case 2:Init_ar(ar, 5, 3, cr2); Print_ar(ar, 5, 3); break; case 3:Init_ar(ar, 5, 3, cr3); Print_ar(ar, 5, 3); break; case 4:Init_ar(ar, 5, 3, cr4); Print_ar(ar, 5, 3); break; case 5:Init_ar(ar, 5, 3, cr5); Print_ar(ar, 5, 3); break; case 6:Init_ar(ar, 5, 3, cr6); Print_ar(ar, 5, 3); break; case 7:Init_ar(ar, 5, 3, cr7); Print_ar(ar, 5, 3); break; case 8:Init_ar(ar, 5, 3, cr8); Print_ar(ar, 5, 3); break; case 9:Init_ar(ar, 5, 3, cr9); Print_ar(ar, 5, 3); break; default: return -1; } return 0; }
運行結果:
輸入5: