ch2變數與運算子
2-1 變數
變數是程式放資料的空間,每個變數佔有特定的記憶體空間。
程式將資料進行運算,就是對變數與記憶體進行運算。
範例:y=x+12
2-2變數的命名
1.開頭不能為數字。
2.只能使用大小寫英文字母(A-Z,a-z)、數字(0-9)與底線(_)所組成。
3.不能使用保留字(如if、for、while)。
4.變數大小寫有差別,例如:A與a是不同的變數。
5.使用有意義的單字命名,如score命名成績變數。
2-3宣告變數的方式
(a)宣告變數
「資料型別 變數;」
例如:int a;
(b)宣告變數並初始化
「資料型別 變數=初始值;」
例如:int a=10;
(c)宣告多個變數
以逗點隔開多個變數。
例如: int a,b,c;
2-4 資料型別
C語言的資料型別分成整數、浮點數與字元等。 資料型別有空間限制,數值過大或過小超過所需空間,數值就無法正確表示 。字元是任何英文字母、數字與半形標點符號。
(2)浮點數
浮點數分為float(單精度浮點數)與double(倍精度浮點數)
(3)字元:大小寫英文字母、數字、英文標點符號。
(4)布林值
布林值是只能表示對(true)或錯(false)的資料型別。
2-5 C++輸入與輸出
使用前需包含以下兩行在程式的開頭。
#include <iostream>
using namespace std;
(1)cout 輸出資料到螢幕
1.格式:cout << “字串”;
說明:「<<」表示輸出,字串部分前後要加上雙引號。
範例:
cout << "C++";
輸出結果:C++
2.格式:cout << 變數;
「<<」表示輸出,變數部分直接使用不用加雙引號。
int x=12;
cout << x;
輸出結果:12
3.輸出多個
格式:cout << 變數 << "字串" << endl;
說明:變數與字串可以不斷串接,沒有前後的差別,
字串前後要加雙引號,而變數不需要,endl表示換行。
(2)cin 輸入資料到變數
1. 單一輸入
格式:cin >> 變數;
說明:輸入到變數
範例:
int a;
cin >> a;
2.多個輸入
格式:cin >> 變數1 >> 變數2 >> 變數3;
說明:輸入多個變數
範例:
int a,b,c;
cin >> a >> b >> c;
2-6 跳脫字元
C語言中要讓特殊字元失去原本的意義要在字元前面新增「\」,注意斜線方向。
例如要輸出「”」,要 cout << “ \” ”;
例如要輸出「\」,要 cout << “ \\ ”;
2-7 指定運算子
將等號右邊計算結果儲存到等號左邊。
範例
1. score=90;
將90儲存入變數score。
2. x=y
將y儲存入x。
2-8算術運算子
負責數值的運算,如加、減、乘、除與求餘數
(1) +
說明:相加
範例:A=2+1;
結果:A=3
(2) -
說明:相減
範例:A=2-1;
結果:A=1
(3) *
說明:相乘
範例:A=2*3;
結果:A=6
(4) /
說明:相除
範例:A=7/2;
結果:A=3
(5) %
說明:求餘數
範例:A=4%3;
結果:A=1
範例-華氏轉攝氏
增量賦值(Augmented Assignment)
當等號的左右兩邊使用到相同變數,可以將運算子與等號結合縮短程式碼,達成相同效果,這類運算子,先運算再指定,稱為增量賦值(Augmented Assignment)運算子。例如:「a = a+1」也可以寫成「a += 1」,不只加法(+) 可以如此縮寫,其他算術運算子也可以縮寫,如下所示。
2-9 關係運算子
(1) <
判斷是否小於,若是回傳true,否則回傳false
範例:4<1,計算結果為false,回傳0。
(2)>
判斷是否大於,若是回傳true,否則回傳false
範例:4>1,計算結果為true,回傳1。
(3)<=
判斷是否小於等於,若是回傳true,否則回傳false
範例:4<=1,計算結果為false,回傳0。
(4)>=
判斷是否大於等於,若是回傳true,否則回傳false
範例:4>=1,計算結果為true,回傳1。
(5)==
判斷是否等於,若是回傳true,否則回傳false
範例:4==1,計算結果為false,回傳0。
(6)!=
判斷是否不等於,若是回傳true,否則回傳false
範例:4!=1,計算結果為true,回傳1。
2-10邏輯運算子
邏輯運算子有三個且(&&)、或(||)、非(!)
範例-判斷成績是否大於等於60小於80
2-11遞增遞減運算子
遞增遞減運算子分為遞增(++)與遞減(--),以下介紹算術運算子。
2-12 計算記憶體空間的運算子
sizeof()是運算子,而不是函式,可以計算出資料所佔有的記憶體空間,單位為位元組(byte)。
2-13 位元運算
以下為C++所提供的位元運算,位元運算前會將所有數值轉換成二進位值,範例中使用5的二進位值為00000101,3的二進位值為00000011,以下舉例位元運算。
位元運算範例程式
2-14 運算子優先權次序
F=2+3*5-14/7,這是一個計算公式,有加減乘除四種運算子,乘除先運算或加減先運算會有不同的結果,而運算子的運算先後順序是有其規則的,這些規則定義在程式語言裡,以下是C語言運算子的優先權規定。
補充 C語言的輸入與輸出
程式競賽為了加速資料的輸入與輸出,鼓勵使用C語言的輸入與輸出,如下。但結構複雜,不適合初學者,如果你是進階使用者可以考慮使用C語言的輸入與輸出,或考慮使用C++的加速輸入輸出的功能(請參考C++程式設計小技巧)。
(1)需包含stdio.h函式庫
#include <stdio.h>
(2)輸出使用printf函式,輸出字串到螢幕。
格式:printf(控制字串,參數)
範例:
1. printf("C++");
輸出結果:C++
2. printf("%sC++","我也愛");
輸出結果:我也愛C++
說明:雙引號表示字串。
3. printf("%c",'C');
輸出結果:C
說明:單引號表示字元。
4. printf(“%d+%d=%d”,1,1,2);
輸出結果:1+1=2
(3)其他輸出時使用的控制字元
\n 換行字元
\0 表示字串的結束
\t 相當於按「tab」鍵
\a 發出嗶一聲
(4)scanf(控制字串,參數)由鍵盤輸入到變數
格式:scanf(控制字串,參數)
1. scanf("%d" , &score);
結果:輸入數值會存入score中。
註:&表示取址符號。
本單元教學影片。