【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款超實用油猴腳本推薦(下)
英偉達購買攻略是什麼?

TAG:編程 | 計算機 | 編程語言 |