【C 入門】控制語句(結構化程序)
目錄
- 目錄
- 概述
- 結構化程序設計
- 順序結構
- 選擇結構
- 循環結構
概述
C/C++的語句用來向計算機系統發出操作指令。一個為實現特定目的而編製的程序應該包含若干的語句,每個語句經過編譯後會產生若干條機器指令。C/C++中的每條語句都是以分號作為結束符的,分號是語句中不可或缺的一部分。
C/C++語句可以分為以下5類:- 定義語句
//例:int a;const double PI = 3.14159;enum color{ blue, red, black,};
- 表達式語句。由一個表達式和其尾部的分號構成的語句。
i++;p = 1, sum = 0;y = fun(w,v);
- 空語句。即只有一個分號的語句,它什麼都不做。
- 複合語句。複合語句是由花括弧{}括起來的多條語句組成的。
{ sum += i; i++;}
- 控制語句
- 條件語句:if() ~ else ~, switch
- 循環語句:for()~, while() ~, do~ while()
- 函數返回語句:return
- 結束本次循環的語句:contiune
- 終止執行 switch 或循環的語句: break
結構化程序設計
順序結構
順序結構程序: 是由一組順序執行的程序塊組成,程序按照語句書寫的順序一步一步順序執行,沒有任何的跳轉。
選擇結構
選擇結構程序:是依據不同的條件選擇執行不同的處理塊。
在 C/C++ 中,選擇結構的語句有2種:- 條件語句(if 語句): if 語句用來判定所給定的條件是否成立,依據判定的結果(真或假)決定執行給出的兩種操作之一。基本形式:
- if
- if-else
- if-else if - … - else
//基本形式 1 :if 語句//執行過程:首先計算表達式 1 的值,若其值不為 0 ,則執行語句1,若為 0,則不執行語句1。if(表達式 1) 語句 1//基本形式 2:if - else //執行過程:首先計算表達式 1 的值,若其值不為 0,則執行語句 1,若為 0,則執行語句 2。if(表達式 1) 語句 1else 語句 2//基本形式:if - else if - ... - else//執行過程:先計算表達式 1 的值,判斷表達式 1 的值是否為 0,若不為 0,則執行語句 1;//若表達式 1 的值為 0,則判斷表達式 2 的值是否為 0,若不為 0,則執行語句 2;//若表達式 2 的值為 0,則判斷表達式 3 的值是否為 0,若不為 0,則執行語句 3;//依次類推 依次計算 第 n 個表達式的值,當表達式 n 的值為非 0時,則執行語句 n,否則 執行語句 n + 1。if(表達式 1) 語句 1else if(表達式 2) 語句 2else if(表達式 3) 語句 3 . . .else if(表達式 n) 語句 nelse 語句 n + 1
- 分支語句(switch 語句)
//形式 1://執行過程:首先計算表達式 1 的值,然後依次把 表達式 1 的值與常量表達式的值進行比較,//一旦發現能夠配對,則以此為入口號,由此開始順序執行。//若表達式 1 的值與所有的 case 中的常量均無法匹配,則執行 default 後的語句組 n + 1。 //NOTE:default 是個可選項,如果 switch 語句中沒有 default 分支,//則當 switch 後的表達式與所有的常量表達式都不匹配時,將不執行任何操作。switch(表達式 1){ case 常量表達式 1 : 語句組 1; case 常量表達式 2 : 語句組 2; ... case 常量表達式 n : 語句組 n; default : 語句組 n + 1;}//形式 2 ://執行過程:先計算表達式 1 的值,比較表達式 1 的值與常量表達式的值是否一致。//若與某個常量表達式的值匹配,則以此為入口標號,執行其後面的語句組,//直到執行到 break 語句,退出switch 結構。//break 語句在 switch 語句中的作用為 退出 switch 語句。switch(表達式 1){ case 常量表達式 1 : 語句組 1 ; break; case 常量表達式 2 : 語句組 2 ; break; case 常量表達式 3 : 語句組 3 ; break; ... case 常量表達式 n : 語句組 n ; break; default : 語句組 n + 1; break;}
- 條件表達式(表達式 1 ? 表達式 2 :表達式 3)
//條件表達式的一般形式//執行過程:先計算表達式 1 的值, 若表達式 1 的值不為 0, //則條件表達式的值為表達式 2 的值,否則為表達式 3 的值表達式 1 ? 表達式 2 :表達式 3
EXAMPLE:使用不同的選擇結構 輸入成績等級,輸出其對應的等級分數
//if - else if 方式int main(void){ char grade = 0; scanf_s("%c", &grade); printf("Your score: "); if (grade == A) { printf("90 ~ 100
"); } else if (grade == B) { printf("80 ~ 89
"); } else if (grade == C) { printf("70 ~ 79
"); } else if (grade == D) { printf("60 ~ 69
"); } else if (grade == E) { printf("0 ~ 59
"); } else { printf("Enter grade error
"); } return 0;}//switch 方式int main(void){ char grade = 0; scanf_s("%c", &grade); printf("Your score: "); switch (grade) { case A: printf("90 ~ 100
"); break; case B: printf("80 ~ 89
"); break; case C: printf("70 ~ 79
"); break; case D: printf("60 ~ 69
"); break; case E: printf("0 ~ 59
"); break; default: printf("Enter grade error
"); break; } return 0;}
輸出結果:
循環結構
循環結構:用來處理需要的重複操作。
- while語句:當循環條件表達式為真,則執行循環體語句。
while(循環條件表達式){ 循環體語句;}
- do…while語句:先執行循環體,然後檢查循環表達式是否為真,若為真,再執行循環體。
do{ 循環體語句;}while(循環條件表達式)
- for語句:
//表達式1:使勁兒中初始條件,只執行一次。//表達式2:循環條件表達式,用於判斷是否繼續循環。在每次執行循環體語句前先執行此表達式。//表達式3:循環的調整,在執行完循環體後才進行。for(表達式1; 表達式2; 表達式3){ 循環體語句;}//即可以理解為for(循環變數賦初值; 循環條件; 循環變數增值){ 循環體語句;}
改變循環狀態的兩種方式:
- break:提前終止循環。使流程跳出循環體之外,接著接著執行循環體下面的語句。
- continue:提前結束本次循環。跳過循環體中下面尚未執行的語句,轉到循環體結束點之前。
EXAMPLE:使用不同的循環語句實現計算 1 + 2 + 3 + … + 99 + 100 的結果
//example 1 : while循環方式計算 1 + 2 + 3 + ... + 99 + 100 的結果int main(void){ int i = 1; int sum = 0; while (i <= 100) { sum += i; i++; } printf("sum = %d", sum); return 0;}//example 2 : do - while循環方式計算 1 + 2 + 3 + ... + 99 + 100 的結果int main(void){ int i = 1; int sum = 0; do { sum += i; i++; } while (i < 101); printf("sum = %d", sum); return 0;}//example 3 : for循環方式計算 1 + 2 + 3 + ... + 99 + 100 的結果int main(void){ int i = 1; int sum = 0; for (i = 1, sum = 0; i <= 100; i++) { sum += i; } printf("sum = %d", sum); return 0;}
輸出結果:
推薦閱讀:
※如何讓不同版本之間的office共存?
※關於U盤啟動盤恢復成普通U盤的方法
※vivox20plus參數產品評測如何?
※打造全能瀏覽器,30款超實用油猴腳本推薦(下)
※英偉達購買攻略是什麼?