c++基礎程式設計 ch2 變數與運算子
TRANSCRIPT
CH2 變數與運算子
變數、運算子的介紹
BY 文月(程教)
先來複習一下之前學過的東西
☆接下來會有一段程式碼,請找出它的錯誤。
題目#include<iostream>
Using namespace std
Int main()
[
cout>>”How are you, C++?”>>endl
]
解答#include<iostream>
using namespace std;
int main()
{
cout<<”How are you, C++?”<<endl;
}
輸入以後……☆還記得上次介紹了cout函數的好朊友cin嗎?
它的語法是這樣的:
cin >> 變數1 >> 變數2 >> … >> 變數n ;
那我現在考考你……
我現在要寫兩個數字相加的程式,我要怎麼在程式碼裡面表示這兩個數字呢?
Q:
想到答案了嗎?想到了嗎?答案就是用變數。
於是你說:「我又不知道變數是什麼,我怎麼會想到?」
那我們先來了解什麼是變數吧!
變數☆變數是程式放資料的空間,每個變數佔有特定的記憶體空間,由編譯器分配。
☆程式將資料進行運算,就是對變數與記憶體進行運算。
不太懂嗎?那打個比喻吧!
變數☆想像一下,我們要輸入的值是一個東西,變數就像是一個箱子(一次只能放一個東西進去),
而且箱子裡的東西可以換掉。
☆剛剛那個兩數相加的問題,我們只要把這兩個數的值都各放入一個箱子,再以箱子的名稱稱呼他們就行了!
宣告變數嘿!等等!那要怎麼把這個箱子寫進程式碼裡?
這個時候就要「宣告變數」了!
語法是這樣的:
int 變數名稱;
宣告變數後就可以自由運用這個變數了!
變數的命名☆開頭不能為數字。
☆只能使用大小寫英文字母、數字與底線(_)所組成。
☆不能使用保留字(如if) 。
☆變數大小寫有差別。
☆使用有意義的單字命名,如score 命名成績變數、sum為總和變數。
這是什麼?
C++保留字列表
☆下列關鍵字是C++語言保留使用的,除了預定義的作用外,這些保留字不能用於其他用途。
asm const_cast explicit int public struct typename
auto continue extern log register switch union
bool default false long reinterpret_cast template unsigned
break delete float mutable return this using
case do for namespace short throw virtual
catch double friend new signed true void
char dynamic_cast goto operator sizeof try volatile
class else if private static typeof wchar_t
const enum inline protected static_cast typeid while
將值存入變數☆將輸入的值存入變數時要用到cin函式,要不則是以「=」來存入值(將等號右側的值存入左號)。
Ex:
int a;
a=10;
cout<<a;
宣告變數a
將10這個值存入a
輸出a的值
宣告變數a
將10這個值存入a結果
宣告變數a
結果將10這個值存入a
宣告變數a
結果
將值存入變數☆剛剛那幾行也可以直接簡化成:
int a=10;
cout<<a;
☆也可以將變數的值存入另一變數:
int a=10;
int b=a;
cout<<b; 輸出b的值
宣告變數b且將a的值存入b
宣告變數a
結果
變數進行運算☆看到標題,你叫道:「喂!變數只是個箱子,有不是那個值,怎麼可以進行運算?」
☆看看變數那頁的介紹:程式將資料進行運算,就是對變數與記憶體進行運算。
Ex:
int a=11,b;
b=a+11;
cout<<b;
宣告變數a(值為11),b
將a+11的值存入b
輸出b的值
結果
算術運算子
☆你想了想,又說:「咦?加號可以這樣直接寫在程式碼裡嗎?」
是可以的喔!而這些運算符號稱為算數運算子。運算符號 + - × ÷ 求
餘數
算術運算子
+ - * / %
關係、邏輯運算子除了算術運算子還有關係運算子和邏輯運算子…等。
☆常見的指定運算子如等號。
= :將符號右邊計算結果儲存到等號左邊。
關係運算子運算子 說明 範例(註:true為1,false為0。)
<判斷是否小於,若是回傳true,否則回傳false
4<1,計算結果為false,回傳0。
>判斷是否大於,若是回傳true,否則回傳false
4>1,計算結果為true,回傳1。
<=判斷是否小於等於,若是回傳true,否則回傳false
4<=1,計算結果為false,回傳0。
>=判斷是否大於等於,若是回傳true,否則回傳false
4>=1,計算結果為true,回傳1。
==判斷是否等於,若是回傳true,否則回傳false
4==1,計算結果為false,回傳0。
!=判斷是否不等於,若是回傳true,否則回傳false
4!=1,計算結果為true,回傳1。
邏輯運算子☆邏輯運算子有三個且(&&)、或(||)、非(!)
X && Y Y=True Y=False
X=True True False
X=False False False
X || Y Y=True Y=False
X=True True True
X=False True False
! X
X=True False
X=False True
資料型別看到一堆運算子,你肯定頭昏眼花了。那我再考考你……
如果要存入的值是小數怎麼辦?甚至是文字呢?
Q:
資料型別這個時候就要先了解什麼是資料型別!
☆C語言的資料型別分成整數、浮點數與字元……等。
☆浮點數為含小數點的數
☆資料型別有空間限制,超過空間範圍後,數值就無法正確表示
☆字元可為任何英文字母、數字與半形標點符號。
整數☆整數分為short、int、long與long long。
資料型別 所佔記憶體空
間(位元組)
數值範圍
short 2 -32768 ~ 32767
int 2 或
4
32768 ~ 32767或
-2147483648 ~
2147483647
long int 4 -2147483648 ~
2147483647
long long int 8 -263-1~263-1
浮點數☆浮點數分為單精度與倍精度浮點數。
資料型別 所佔記憶體空間(位元) 數值範圍
float 4 3.4x10-38到3.4x10+38
-3.4x10+38到-3.4x10-38
註:準確到小數點以下第7位
double 8 1.7x10-308到1.7x10+308
-1.7x10+308到-1.7x10-308
註:準確到小數點以下第15位
字元與字串☆字元為大小寫英文字母、數字、英文標點符號。
☆字串由字元組成。
輸出字元和字串的範例如下:
cout<<'C'<<"++ is great.";
資料型別 所佔記憶
體空間(位
元組)
數值範圍
char 1 -128 ~ 127
特殊字元
\n 換行字元
\0 表示字串的結束
\t 相當於按「tab」鍵
\a 發出嗶一聲
Q:請問要怎麼輸出"aaa\naaa"這行字?
錯誤解法#include<iostream>
using namespace std;
int main()
{
cout<<"aaa\naaa";
}
結果
Σ(・ω・ノ)ノ
換…換行了!
救星-跳脫字元☆C++中要讓特殊字元失去原本的意義要在字元前面新增「\」,注意斜線方向。
Ex1:要輸出「 " 」,要 cout << " \" ";
Ex2:例如要輸出「\」,要 cout << " \\ ";
所以剛剛輸出要改成:
cout<<"aaa\\naaa";結果
CH2到此結束,感謝大家的聆聽!
記得看看解題範例然後做作業喔!