1. 程式人生 > >c++語句分類

c++語句分類

語句

空語句

宣告語句

表示式語句

  1. 格式: 表示式;
  2. 表示式語句與表示式的區別: 表示式可以包含在其他表示式中,而 語句不可。

例如: if ((a = b) > 0) t = a; 不可寫為: if ((a = b;) > 0) t = a;

複合語句

將多個語句用一對大括號包圍, 便構成一個複合語句

• 例如 { sum=sum+i; i++; }

選擇語句

1. if三種結構
  1. if (表示式) 語句

例: if (x > y) cout << x;

  1. if (表示式) 語句1 else 語句2

例: if (x > y) cout << x; else cout << y;

  1. if (表示式1) 語句1 else if (表示式2) 語句2 else if (表示式3) 語句3 … else 語句 n
2. 多分支問題
  • if 語句——巢狀
    1. 一般形式 if( ) if( ) 語句 1 else 語句 2 else if( ) 語句 3 else 語句 4
    2. 注意 語句 1、 2、 3、 4 可以是複合語句,每層的 if 與 else 配對,或用 { } 來確定層次關係。
  • switch 語句 在這裡插入圖片描述
  1. case分支可包含多個語句,且不用{ }。
  2. 表示式、判斷值都是int型或char型。
  3. 若干分支執行內容相同可共用一組語句。

迴圈語句

  1. while迴圈

    1. 形式 while (表示式) 語句 可以是複合語句,其中必須含有 改變條件表示式值的語句。
    2. 執行順序 先判斷表示式的值,若為 true 時,執行語句。
  2. do…while迴圈

    1. 一般形式 do 語句 while (表示式) 可以是複合語句,其中必須含 有改變條件表示式值的語句。
    2. 執行順序 先執行迴圈體語句,後判斷條件。 表示式為 true 時,繼續執行迴圈體
    3. 與while語句的比較: –while 語句執行順序 先判斷表示式的值,為true時,再執行語句
  3. for迴圈

    1. 語法形式 在這裡插入圖片描述

跳轉語句

  1. break語句 使程式從迴圈體和switch語句內跳出,繼續執行邏輯上的下一條語句。不宜用在別處。
  2. continue語句 結束本次迴圈,接著判斷是否執行下一次迴圈。

輸入與輸出

• 向標準輸出裝置(顯示器)輸出 例: int x; cout << “x=” << x; • 從標準輸入裝置(鍵盤)輸入 例: int x; cin >> x; 在這裡插入圖片描述

自定義資料型別

typedef語句

• 為一個已有的資料型別另外命名 • 語法形式 typedef 已有型別名 新型別名錶;

• 例如 typedef double Area; Area a;

• 不推薦使用,降低可讀性

列舉型別–enum

• 只要將需要的變數值一一列舉出來,便構成了一個列舉型別。 • 列舉型別的宣告形式如下: enum 列舉型別名 {變數值列表};

• 例如: enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};

• 列舉型別應用說明:

  1. 對列舉元素按常量處理,不能對它們賦值。例如,不能寫: SUN = 0;
  2. 列舉元素具有預設值,它們依次為:0,1,2,…。
  3. 也可以在宣告時另行指定列舉元素的值,如: enum Weekday {SUN=7,MON=1,TUE,WED,THU,FRI,SAT};
  4. 列舉值可以進行關係運算。
  5. 整數值不能直接賦給列舉變數,如需要將整數賦值給列舉變數,應進行強制型別轉換

設某次體育比賽的結果有四種可能:勝(WIN)、負(LOSE)、平局(TIE)、比賽取(CANCEL),編寫程式順序輸出這四種情況。在這裡插入圖片描述

結構體 --> struct

  1. 結構的概念 –結構是由不同資料型別的資料組成的集合體。
  2. 宣告結構型別 struct 結構名 { 資料型別 成員名 1; 資料型別 成員名 2; : 資料型別 成員名 n; };

舉例: struct student //學生資訊結構體 { int num; //學號 char name[20]; //姓名 char sex; //性別 int age; //年齡 float score; //成績 char addr[30]; //住址 };

  1. 變數說明形式 結構名 結構變數名;
  2. 注意:
    • 結構變數的儲存型別概念、它的壽命、可 見性及使用範圍與普通變數完全一致。
    • 結構變數說明在結構型別宣告之後,二者 也可同時進行。
    • 結構變數佔記憶體大小可用 sizeof 運算求 出: sizeof(運算量)
  3. 結構體的初始化和使用
    • 初始化 說明結構變數的同時可以直接設定初值。
    • 使用 結構體成員的引用形式: 結構變數名.成員名

    在這裡插入圖片描述

聯合體

  1. 宣告形式: union 聯合名 { 資料型別 成員名 1; 資料型別 成員名 2; : 資料型別 成員名 n; };
  2. 聯合體型別變數說明的語法形式 聯合名 聯合變數名;
  3. 引用形式: 聯合名.成員名

例如: union uarea { char c_data; short s_data; long l_data; }

  1. 無名聯合 • 無名聯合沒有標記名,只是宣告一個成員項的集合,這些成員項具有相同的記憶體地址,可以由成員項的名字直接訪問。

例: union { int i; float f; } 在程式中可以這樣使用: i=10; f=2.2;

變數工作機制

變數兩個重要屬性:

  1. 資料型別 – 任何資料在記憶體中都是用二進位制串的形式表示的; – 一串二進位制數,只有確定了型別,才有真實的含義;

例: 10111111,10000000,00000000,00000000 •解釋為int型: -1,082,130,432 •解釋為unsigned型: 3,212,836,864

  1. 變數名 –原始碼中,變數依靠變數名來標識; –目的碼中,變數依靠地址來標識,每 個變數的地址互不相同。
  • 變數的宣告 –將一個識別符號宣告為變數,告訴編譯器這個識別符號表示變數,同時還指出了它的資料型別; –只有確定了一個變數的資料型別,變數參與的操作才具有完整的意義,編譯器才能將該變數參與的表示式翻譯為合適的操作。
  • 變數的定義 –不僅確定了一個識別符號表示變數,以及該變數的型別,還確定了變數地址的分配位置。

表示式執行原理

  • 暫存器: –CPU內部的儲存單元 –讀寫速度非常快 –數量很少
  • 大部分CPU指令都需要讀寫暫存器。
  • 複雜的表示式,分步執行,每條指令只能做一次基本運算,中間結果暫存在暫存器中。