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的二進位值為000001013的二進位值為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中。

註:&表示取址符號。

本單元教學影片。

YouTube播放清單