for
、 while
跟 do...while
,接下來我們將一一介紹。
for
是常用於有固定次數的迴圈,當中包含三個參數,初始值、判斷式及控制式,中間則是用 ;
隔開,一樣要特別注意因為迴圈還不是一個完整的指令,所以後面不用加 ;
,到敘述句的時候再加。
for(初始值;判斷式;控制式){
敘述句;
}
是不是很簡單啊,我們直接來看個範例,我們要輸出1到10要怎麼做呢。
#include <iostream>
using namespace std;
int main(){
for(int i=1;i<=10;i++)
cout<<i<<endl;
return 0;
}
我們一樣用 ideone 來實作看看。
while
常用於不固定次數的迴圈,是根據判斷式來決定是否結束,那他跟for
一樣並不是一個完整的指令,所以要等到敘述句時再加;
。
while(判斷式){
敘述句;
}
因為次數不固定,所以我們給他一個條件來表示結束吧。
#include <iostream>
using namespace std;
int main(){
int sum=0,i=1;
while(i<100){
sum+=i;
i++;
}
cout<<sum<<endl;
return 0;
}
一樣到 ideone 上測試。
do...while
比較特殊也比較少用到,他的概念跟while
很像,但是他會先執行然後才判斷,但有一點要特別注意,前面兩個是迴圈使不用加;
的,但使用do..while
結束時一定要記得加;
,這很重要一定要記住。
do{
敘述句;
敘述句;
}while(判斷式);
那我們一樣用剛剛while
的範例吧。
#include <iostream>
using namespace std;
int main(){
int sum=0,i=1;
do{
sum+=i;
i++;
}while(i<100);
cout<<sum<<endl;
return 0;
}
發現其實兩個程式跑出來的結果是一樣的,所以do...while
同樣也可以做到while
能做的事,但還是要特別注意兩個跑的方式還是不太一樣的。
迴圈就到這邊結束啦,接下來就要進入比較進階的部分,有任何問題也歡迎下面留言
]]>for
、 while
跟 do...while
,接下來我們將一一介紹。
for
是常用於有固定次數的迴圈,當中包含三個參數,初始值、判斷式及控制式,中間則是用 ;
隔開,一樣要特別注意因為迴圈還不是一個完整的指令,所以後面不用加 ;
,到敘述句的時候再加。
for(初始值;判斷式;控制式){
敘述句;
}
是不是很簡單啊,我們直接來看個範例,我們要輸出1到10要怎麼做呢。
#include <iostream>
using namespace std;
int main(){
for(int i=1;i<=10;i++)
cout<<i<<endl;
return 0;
}
我們一樣用 ideone 來實作看看。
while
常用於不固定次數的迴圈,是根據判斷式來決定是否結束,那他跟for
一樣並不是一個完整的指令,所以要等到敘述句時再加;
。
while(判斷式){
敘述句;
}
因為次數不固定,所以我們給他一個條件來表示結束吧。
#include <iostream>
using namespace std;
int main(){
int sum=0,i=1;
while(i<100){
sum+=i;
i++;
}
cout<<sum<<endl;
return 0;
}
一樣到 ideone 上測試。
do...while
比較特殊也比較少用到,他的概念跟while
很像,但是他會先執行然後才判斷,但有一點要特別注意,前面兩個是迴圈使不用加;
的,但使用do..while
結束時一定要記得加;
,這很重要一定要記住。
do{
敘述句;
敘述句;
}while(判斷式);
那我們一樣用剛剛while
的範例吧。
#include <iostream>
using namespace std;
int main(){
int sum=0,i=1;
do{
sum+=i;
i++;
}while(i<100);
cout<<sum<<endl;
return 0;
}
發現其實兩個程式跑出來的結果是一樣的,所以do...while
同樣也可以做到while
能做的事,但還是要特別注意兩個跑的方式還是不太一樣的。
迴圈就到這邊結束啦,接下來就要進入比較進階的部分,有任何問題也歡迎下面留言
]]>if...else
跟switch
。
if...else
是程式語言中非常常見的,大部分的程式語言都有這個語法,而他也很好理解翻成中文就是假如...否則
。
if (條件) {
敘述句;
}
else {
敘述句;
}
但有個小地方要特別注意,因為在寫判斷式時還不算一句完整的指令,所以還不用加;
,要到寫敘述句的時候再加,這要特別注意。
那假如我們今天的判斷不只兩個要到三個四個呢,這時候就會用到if..else
的另一個寫法else if
,可以同時加入不同條件做判斷。
if (條件){
敘述句;
}
else if (條件){
敘述句;
}
else{
敘述句;
}
接下來我們來試著寫個成績判斷的範例程式。
#include <iostream>
using namespace std;
int main(){
int score;
cin>>score;
if(score>=60)
cout<<"及格"<<endl;
else
cout<<"不及格"<<endl;
return 0;
}
一樣放到 ideone 上看看
那假如今天我們要將分數分級的話該怎麼辦呢,所以現在我們就來寫多個判斷的程式吧,把分數分成A
B
C
D
E
五組吧。
#include <iostream>
using namespace std;
int main(){
int score;
cin>>score;
if(score>=90)
cout<<"A";
else if(score<90 && score>=80)
cout<<"B";
else if(score<80 && score>=70)
cout<<"C";
else if(score<70 && score>=60)
cout<<"D";
else
cout<<"E";
return 0;
}
在 ideone檢查有沒有錯
那如果今天出現了不正常的分數該怎麼辦呢,是不是只要在前面多一個判斷就好了呢,現在先不要往下滑試著自己寫寫看吧。
.
.
.
.
.
.
.
.
.
.
.
.
//答案僅供參考,只要能達成目的的都是正確答案
#include <iostrea>
using namespace std;
int main(){
int score;
cin>>score;
if(score>=0 && score<=100){
if(score>=60)
cout<<"及格";
else
cout<<"不及格";
}
else
cout<<"請輸入有效分數";
return 0;
}
switch..case
常見於一個變數需要大量的判斷,想想看一直用else if
是不是很煩阿,這時候就是switch
上場的時候了,不過他的寫法與前面教得有點不一樣,要特別注意。
switch(變數){
case 符合的數字或字元:
敘述句;
break;
case 符合的數字或字元:
敘述句;
break;
.
.
.
default:
敘述句;
}
switch
的判斷是這樣,會去比對變數與case
是否一樣,如果一樣就執行下面的敘述句然後break
跳出判斷,這個break
非常重要,如果你沒有加他就會繼續判斷下去,直到遇到default
並執行敘述句,因為default
就是在你以上都不符合的時候才會執行,所以一定要記住加break
。
#include <iostream>
using namespace std;
int main(){
char score;
cin>>score;
switch(score){
case 'A':
cout<<"90分";
break;
case 'B':
cout<<"80分";
break;
case 'C':
cout<<"70分";
break;
case 'D':
cout<<"60分";
break;
default:
cout<<"不及格";
}
return 0;
}
到 ideone 看看吧
那假如我們今天要判斷的是一個範圍該怎麼辦呢,所以switch
還有另一種寫法,要特別注意,他數字的範圍是包含於頭尾兩個數字。
switch(變數){
case 數字 ... 數字:
敘述句;
break;
.
.
.
default:
敘述句;
}
那我們就用前面的範例換成switch...case
寫寫看吧。
#include <iostream>
using namespace std;
int main(){
int score;
cin>>score;
switch(score){
case 90 ... 100:
cout<<"A";
break;
case 80 ... 89:
cout<<"B";
break;
case 70 ... 79:
cout<<"C";
break;
case 60 ... 69:
cout<<"D";
break;
case 0 ... 59:
cout<<"F";
break;
default:
cout<<"請輸入有效數字";
}
return 0;
}
那這章就到這邊啦,有任何問題歡迎下面留言指教,下一章我們會開始教迴圈的使用
]]>if...else
跟switch
。
if...else
是程式語言中非常常見的,大部分的程式語言都有這個語法,而他也很好理解翻成中文就是假如...否則
。
if (條件) {
敘述句;
}
else {
敘述句;
}
但有個小地方要特別注意,因為在寫判斷式時還不算一句完整的指令,所以還不用加;
,要到寫敘述句的時候再加,這要特別注意。
那假如我們今天的判斷不只兩個要到三個四個呢,這時候就會用到if..else
的另一個寫法else if
,可以同時加入不同條件做判斷。
if (條件){
敘述句;
}
else if (條件){
敘述句;
}
else{
敘述句;
}
接下來我們來試著寫個成績判斷的範例程式。
#include <iostream>
using namespace std;
int main(){
int score;
cin>>score;
if(score>=60)
cout<<"及格"<<endl;
else
cout<<"不及格"<<endl;
return 0;
}
一樣放到 ideone 上看看
那假如今天我們要將分數分級的話該怎麼辦呢,所以現在我們就來寫多個判斷的程式吧,把分數分成A
B
C
D
E
五組吧。
#include <iostream>
using namespace std;
int main(){
int score;
cin>>score;
if(score>=90)
cout<<"A";
else if(score<90 && score>=80)
cout<<"B";
else if(score<80 && score>=70)
cout<<"C";
else if(score<70 && score>=60)
cout<<"D";
else
cout<<"E";
return 0;
}
在 ideone檢查有沒有錯
那如果今天出現了不正常的分數該怎麼辦呢,是不是只要在前面多一個判斷就好了呢,現在先不要往下滑試著自己寫寫看吧。
.
.
.
.
.
.
.
.
.
.
.
.
//答案僅供參考,只要能達成目的的都是正確答案
#include <iostrea>
using namespace std;
int main(){
int score;
cin>>score;
if(score>=0 && score<=100){
if(score>=60)
cout<<"及格";
else
cout<<"不及格";
}
else
cout<<"請輸入有效分數";
return 0;
}
switch..case
常見於一個變數需要大量的判斷,想想看一直用else if
是不是很煩阿,這時候就是switch
上場的時候了,不過他的寫法與前面教得有點不一樣,要特別注意。
switch(變數){
case 符合的數字或字元:
敘述句;
break;
case 符合的數字或字元:
敘述句;
break;
.
.
.
default:
敘述句;
}
switch
的判斷是這樣,會去比對變數與case
是否一樣,如果一樣就執行下面的敘述句然後break
跳出判斷,這個break
非常重要,如果你沒有加他就會繼續判斷下去,直到遇到default
並執行敘述句,因為default
就是在你以上都不符合的時候才會執行,所以一定要記住加break
。
#include <iostream>
using namespace std;
int main(){
char score;
cin>>score;
switch(score){
case 'A':
cout<<"90分";
break;
case 'B':
cout<<"80分";
break;
case 'C':
cout<<"70分";
break;
case 'D':
cout<<"60分";
break;
default:
cout<<"不及格";
}
return 0;
}
到 ideone 看看吧
那假如我們今天要判斷的是一個範圍該怎麼辦呢,所以switch
還有另一種寫法,要特別注意,他數字的範圍是包含於頭尾兩個數字。
switch(變數){
case 數字 ... 數字:
敘述句;
break;
.
.
.
default:
敘述句;
}
那我們就用前面的範例換成switch...case
寫寫看吧。
#include <iostream>
using namespace std;
int main(){
int score;
cin>>score;
switch(score){
case 90 ... 100:
cout<<"A";
break;
case 80 ... 89:
cout<<"B";
break;
case 70 ... 79:
cout<<"C";
break;
case 60 ... 69:
cout<<"D";
break;
case 0 ... 59:
cout<<"F";
break;
default:
cout<<"請輸入有效數字";
}
return 0;
}
那這章就到這邊啦,有任何問題歡迎下面留言指教,下一章我們會開始教迴圈的使用
]]>算術運算基本上就是我們數學上的四則運算,包含加 +
、減 -
、乘 *
、除 /
還有一個比較特別的取餘數 %
,當然她也遵守數學上的先乘除後加減,必要的時候也可以用括號來執行優先運算,取餘的優先度則跟乘除一樣。
#include <iostream>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<a+b<<endl;
cout<<a-b<<endl;
cout<<a*b<<endl;
cout<<a/b<<endl;
cout<<a%b<<endl;
cout<<(a+b)*c<<endl;
cout<<a+b*c<<endl;
return 0;
}
把它放到 ideone 上看看
是不是很簡單啊,但有個小細節一定要注意,那就是變數的型態,什麼是變數的型態呢,還記的上一章我們講得宣告變數嗎,裡面有說到不同的變數型態所存的東西是不一樣的,就像上面我們是用int
宣告變數,所以不管怎樣計算出來都一定只會有整數,這就是為什麼cout<<a/b;
時出來的是1
不是1.3333
,那如果我今天希望它計算出小數點呢,有很多不同的方法,最簡單的就是在宣告的時候就用浮點數也就是double
跟flaot
,另一個則是叫強制型別轉換是個很方便的東西,它的寫法是這樣:
型別(變數);
通常會用在運算時直接改變型別,下面兩種不同的寫法結果都一樣,就看各位喜歡哪一種了,我個人是建議新手都用第一種比較好,第二種在某些特殊情況下再使用。
除了正常我們數學上常用的寫法外,在C++裡有還有許多懶人的寫法,因為工程師通常都很懶,能少打就少打,所以這邊我們來介紹兩個常見的縮寫
變數 += 變數;//以加為範例
他等於我們平常寫的變數 = 變數 + 變數;
,通常用在迴圈算總和的時候,加也可以換成其他的算數運算子。
#include <iostream>
using namespace std;
int main(){
int a=1;
cout<<(a+=a);
return 0;
}
變數++;
或
++變數;
在C++裡面,++
就是加一的意思,當然也有--
就是減一,但++
放在前面或後面有不一樣的意思喔,一個是先做++變數;
、一個是後做變數++;
,不懂嗎,沒關係我們直接看例子。
#include <iostream>
using namespace std;
int main(){
int a=0;
cout<<(a++)<<endl;
cout<<a<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main(){
int a=0;
cout<<(++a)<<endl;
cout<<a<<endl;
return 0;
}
有看出差別嗎,簡單來說,範例1就是先做cout<<a;
才做a++;
,範例2則是先做++a;
才做cout<<a;
,這樣都懂了嗎。
關係運算就是我們常見的大於>
、小於<
、不大於<=
、不小於>=
、等於==
跟不等於!=
,關係運算的結果就是回傳1
或0
,也就是true
或false
,因為在 C++ 中所有非0
的數都被視為true
。
#include <iostream>
using namespace std;
int main(){
int a=4;
int b=3;
cout<<"a>b "<<(a>b)<<endl;
cout<<"a<b "<<(a<b)<<endl;
cout<<"a>=b "<<(a>=b)<<endl;
cout<<"a<=b "<<(a<=b)<<endl;
cout<<"a==b "<<(a==b)<<endl;
cout<<"a!=b "<<(a!=b)<<endl;
return 0;
}
一樣丟上去看看 ideone
那就有人好奇啦,我們前面在宣告變數時用的等於明明就是長這樣=
,為什麼在關係運算裡面會長這樣==
呢,其實=
這個才是我們數學上常用的等於,而=
這個則是另外一個意思,通常我們是翻譯為賦予,你要賦予變數一個值,所以我們的寫法才會是c = a + b;
,不是寫成數學上的a + b = c
,這個很重要一定要記住=
跟==
是不一樣的,很多人會搞混,要搞清楚在寫if...else
條件判斷的時候才不會不知道自己哪裡錯。
在邏輯上我們有"且(and)"&&
、"或(or)"||
跟"相反(not)"!
,他們的邏輯判斷如下
&& |
1 |
0 |
---|---|---|
1 |
true |
false |
0 |
false |
false |
` | ` | 1 |
0 |
|
---|---|---|---|---|
1 |
true |
true |
||
0 |
true |
false |
!
就是結果都相反
在 ideone 上實作:
是不是很簡單啊,就跟平常的邏輯一樣,在之後的if...else
條件判斷或迴圈都會用到,還有什麼不懂可以留言給我喔。
這章結束囉,當然C++還有很多其他的運算子以後有機會還會說到,下一章會開始講條件判斷
]]>算術運算基本上就是我們數學上的四則運算,包含加 +
、減 -
、乘 *
、除 /
還有一個比較特別的取餘數 %
,當然她也遵守數學上的先乘除後加減,必要的時候也可以用括號來執行優先運算,取餘的優先度則跟乘除一樣。
#include <iostream>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<a+b<<endl;
cout<<a-b<<endl;
cout<<a*b<<endl;
cout<<a/b<<endl;
cout<<a%b<<endl;
cout<<(a+b)*c<<endl;
cout<<a+b*c<<endl;
return 0;
}
把它放到 ideone 上看看
是不是很簡單啊,但有個小細節一定要注意,那就是變數的型態,什麼是變數的型態呢,還記的上一章我們講得宣告變數嗎,裡面有說到不同的變數型態所存的東西是不一樣的,就像上面我們是用int
宣告變數,所以不管怎樣計算出來都一定只會有整數,這就是為什麼cout<<a/b;
時出來的是1
不是1.3333
,那如果我今天希望它計算出小數點呢,有很多不同的方法,最簡單的就是在宣告的時候就用浮點數也就是double
跟flaot
,另一個則是叫強制型別轉換是個很方便的東西,它的寫法是這樣:
型別(變數);
通常會用在運算時直接改變型別,下面兩種不同的寫法結果都一樣,就看各位喜歡哪一種了,我個人是建議新手都用第一種比較好,第二種在某些特殊情況下再使用。
除了正常我們數學上常用的寫法外,在C++裡有還有許多懶人的寫法,因為工程師通常都很懶,能少打就少打,所以這邊我們來介紹兩個常見的縮寫
變數 += 變數;//以加為範例
他等於我們平常寫的變數 = 變數 + 變數;
,通常用在迴圈算總和的時候,加也可以換成其他的算數運算子。
#include <iostream>
using namespace std;
int main(){
int a=1;
cout<<(a+=a);
return 0;
}
變數++;
或
++變數;
在C++裡面,++
就是加一的意思,當然也有--
就是減一,但++
放在前面或後面有不一樣的意思喔,一個是先做++變數;
、一個是後做變數++;
,不懂嗎,沒關係我們直接看例子。
#include <iostream>
using namespace std;
int main(){
int a=0;
cout<<(a++)<<endl;
cout<<a<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main(){
int a=0;
cout<<(++a)<<endl;
cout<<a<<endl;
return 0;
}
有看出差別嗎,簡單來說,範例1就是先做cout<<a;
才做a++;
,範例2則是先做++a;
才做cout<<a;
,這樣都懂了嗎。
關係運算就是我們常見的大於>
、小於<
、不大於<=
、不小於>=
、等於==
跟不等於!=
,關係運算的結果就是回傳1
或0
,也就是true
或false
,因為在 C++ 中所有非0
的數都被視為true
。
#include <iostream>
using namespace std;
int main(){
int a=4;
int b=3;
cout<<"a>b "<<(a>b)<<endl;
cout<<"a<b "<<(a<b)<<endl;
cout<<"a>=b "<<(a>=b)<<endl;
cout<<"a<=b "<<(a<=b)<<endl;
cout<<"a==b "<<(a==b)<<endl;
cout<<"a!=b "<<(a!=b)<<endl;
return 0;
}
一樣丟上去看看 ideone
那就有人好奇啦,我們前面在宣告變數時用的等於明明就是長這樣=
,為什麼在關係運算裡面會長這樣==
呢,其實=
這個才是我們數學上常用的等於,而=
這個則是另外一個意思,通常我們是翻譯為賦予,你要賦予變數一個值,所以我們的寫法才會是c = a + b;
,不是寫成數學上的a + b = c
,這個很重要一定要記住=
跟==
是不一樣的,很多人會搞混,要搞清楚在寫if...else
條件判斷的時候才不會不知道自己哪裡錯。
在邏輯上我們有"且(and)"&&
、"或(or)"||
跟"相反(not)"!
,他們的邏輯判斷如下
&& |
1 |
0 |
---|---|---|
1 |
true |
false |
0 |
false |
false |
` | ` | 1 |
0 |
|
---|---|---|---|---|
1 |
true |
true |
||
0 |
true |
false |
!
就是結果都相反
在 ideone 上實作:
是不是很簡單啊,就跟平常的邏輯一樣,在之後的if...else
條件判斷或迴圈都會用到,還有什麼不懂可以留言給我喔。
這章結束囉,當然C++還有很多其他的運算子以後有機會還會說到,下一章會開始講條件判斷
]]>在 C++中最基本的輸入跟輸出就是cin
跟cout
,使用時cin
要搭配>>
,cout
要搭配<<
。
cin>>變數名稱;
cout<<輸出內容;
#include <iostream>
using namespace std;
int main(){
int a;//宣告變數
cin>>a;//輸入a的值
cout<<a<<endl;//輸出a跟換行
cout<<"輸入與輸出";
return 0;
}
我們一樣用 ideone 來實作,這是個簡單的程式,就是你輸入什麼數字他就輸出什麼,endl
則是換行,我們直接來看看結果。
在正常情況下電腦預設都是十進位,可是我們要用其他進位的話該怎麼辦呢,其實cout
是可以控制要輸出的是什麼進位的,首先我們要先知道各個進位的縮寫,十進位的縮寫是dec
,八進位是oct
,十六進位是hex
,然後只需要在要輸出的數字前加上這些縮寫就可以了。
cout<<進位制<<變數;
那如果要輸入呢,很簡單,在常數中0
開頭為八進位,0x
為十六進位。
八進位:
十六進位:
在輸入前其實有件事非常重要,那就是宣告,什麼是宣告呢,就是我們在使用變數時,要先告訴電腦「我要使用變數囉」,這時電腦就會幫我們準備能夠存這個變數的記憶體空間,如果還是不懂就把他想成數學裡的未知數,你要先給電腦一個名字,電腦才知道要把你的書放在哪。
變數的名稱也是有規定的,不能自己亂宣告
_
int
、return
...變數型態 變數名稱;
或
變數型態 變數名稱 = 預設值;
C++ 保留字
在變數宣告時,除了要告訴電腦變數名稱外還要告訴他我們要存種類是什麼,在 C++中變數有許多型態,每個資料可以存的東西和空間大小都不一樣。
型 態 | 中 文 | 位 元 | 範 圍 |
---|---|---|---|
int |
整 數 | 4 | -2,147,483,648~2,147,483,647 |
bool |
布 林 | 1 | false 跟true |
float |
浮點數 | 4 | 3.4E +/- 38 (7 位數) |
double |
浮點數 | 8 | 1.7E +/- 308 (15 位數) |
char |
字 元 | 1 | 基本上就是文字資料,也可以存整數 |
以上的資料型態在記憶體裡的大小會依不同的編譯器而有所差異,想要知道這些資料型態在自己的編譯器上占多少空間,可以用sizeof
這個函數。
以我們用的 ideone 為例:
這邊有人就會好奇為什麼浮點數有兩個,其實這是因為不同精確度的關係,float
又稱單精浮點數,double
則是雙精浮點數,其他還有像是long
、unsigned int
等,之後有機會再介紹。
這章結束囉,下一章會開始講運算部分
]]>在 C++中最基本的輸入跟輸出就是cin
跟cout
,使用時cin
要搭配>>
,cout
要搭配<<
。
cin>>變數名稱;
cout<<輸出內容;
#include <iostream>
using namespace std;
int main(){
int a;//宣告變數
cin>>a;//輸入a的值
cout<<a<<endl;//輸出a跟換行
cout<<"輸入與輸出";
return 0;
}
我們一樣用 ideone 來實作,這是個簡單的程式,就是你輸入什麼數字他就輸出什麼,endl
則是換行,我們直接來看看結果。
在正常情況下電腦預設都是十進位,可是我們要用其他進位的話該怎麼辦呢,其實cout
是可以控制要輸出的是什麼進位的,首先我們要先知道各個進位的縮寫,十進位的縮寫是dec
,八進位是oct
,十六進位是hex
,然後只需要在要輸出的數字前加上這些縮寫就可以了。
cout<<進位制<<變數;
那如果要輸入呢,很簡單,在常數中0
開頭為八進位,0x
為十六進位。
八進位:
十六進位:
在輸入前其實有件事非常重要,那就是宣告,什麼是宣告呢,就是我們在使用變數時,要先告訴電腦「我要使用變數囉」,這時電腦就會幫我們準備能夠存這個變數的記憶體空間,如果還是不懂就把他想成數學裡的未知數,你要先給電腦一個名字,電腦才知道要把你的書放在哪。
變數的名稱也是有規定的,不能自己亂宣告
_
int
、return
...變數型態 變數名稱;
或
變數型態 變數名稱 = 預設值;
C++ 保留字
在變數宣告時,除了要告訴電腦變數名稱外還要告訴他我們要存種類是什麼,在 C++中變數有許多型態,每個資料可以存的東西和空間大小都不一樣。
型 態 | 中 文 | 位 元 | 範 圍 |
---|---|---|---|
int |
整 數 | 4 | -2,147,483,648~2,147,483,647 |
bool |
布 林 | 1 | false 跟true |
float |
浮點數 | 4 | 3.4E +/- 38 (7 位數) |
double |
浮點數 | 8 | 1.7E +/- 308 (15 位數) |
char |
字 元 | 1 | 基本上就是文字資料,也可以存整數 |
以上的資料型態在記憶體裡的大小會依不同的編譯器而有所差異,想要知道這些資料型態在自己的編譯器上占多少空間,可以用sizeof
這個函數。
以我們用的 ideone 為例:
這邊有人就會好奇為什麼浮點數有兩個,其實這是因為不同精確度的關係,float
又稱單精浮點數,double
則是雙精浮點數,其他還有像是long
、unsigned int
等,之後有機會再介紹。
這章結束囉,下一章會開始講運算部分
]]>C++ 是一種被廣泛使用的電腦程式設計語言,比雅尼·斯特勞斯特魯普博士在貝爾實驗室工作期間在20世紀80年代發明並實現了C++,作為C語言的增強版,C++ 引入了更多的特性,包括:複合型別(參照類型等)、const限定符和constexpr常數表達式、型別處理運算子(型別別名及auto和decltype等多種型別指示符)、C++ 標準庫(IO庫與多種容器類)與疊代器、動態記憶體與智慧型指標、函式重載、物件導向程式設計。
以上引自 wikipedia
C++ 雖然是一門古老的語言,易讀性也比不過其他的腳本語言,可至今仍有大量的工程師在使用,這也是各大比賽中最常出現的語言。如 APCS、ITSA 等,所以對想讀資訊的同學,是非常值得深入學習的語言。
2020 TIOBE 程式語言排行
這邊我們選用線上編譯器--- ideone,方便又快速。
↑ 左下角記得選C++,如果要自訂輸入請點
按
就會看到結果了
這個程式常為初學者的第一個程式
#include <iostream>
using namespace std;
int main(){
cout<<"Hello World";
return 0;
}
首先看這兩行:
#include <iostream>
using namespace std;
#include
就是引入的意思,引入標頭檔iostream
(input / output stream的縮寫),很多新手會問什麼是標頭檔,標頭檔就像字典一樣,告訴電腦這個字是什麼意思,假如今天給你一個英文單字Apple,但你沒學過英文所以不知道是什麼意思,但我再給你一本字典讓你去查,你就會知道這個字叫蘋果,標頭檔就像那個字典,讓電腦知道你要他幹什麼。
using namespace std;
這段話就是在告訴電腦我今天要用的東西在std
(標準函數庫)這個空間裡面,就像字典厚厚一本同一個字有可能有不同的意思,所以我們告訴電腦我們要的東西在std
這個範圍裡面,就不容易搞錯我們的意思了。
再來看到主函式main
:
int main(){
...
return 0;
}
這是 C++ 程式中,程式的進入點,就是告訴電腦要從這裡開始執行,整個函式用大誇號包起來,前面的int
表示函式結束時會回傳整數(Integer),最後一行return 0;
,也就是程式結束回傳0
,通常回傳0
表示程式正常結束,當然也可以回傳其他數字讓其他程式做進一步的處理,而在標準 C++ 中沒有指定return
,main
預設也會回傳0
。
接下來看main
中的程式碼:
cout<<"Hello World";
C++中每行都要用;
表示結束,cout
是表示輸出,而<<
是輸出的運算子,更詳細的觀念會在後面介紹,簡單來說cout<<"Hello World";
就是把Hello World
輸出在銀幕上。
在編譯器看到就會長這樣
這章就先到這邊,下一章會開始介紹基本的輸出輸入。
]]>C++ 是一種被廣泛使用的電腦程式設計語言,比雅尼·斯特勞斯特魯普博士在貝爾實驗室工作期間在20世紀80年代發明並實現了C++,作為C語言的增強版,C++ 引入了更多的特性,包括:複合型別(參照類型等)、const限定符和constexpr常數表達式、型別處理運算子(型別別名及auto和decltype等多種型別指示符)、C++ 標準庫(IO庫與多種容器類)與疊代器、動態記憶體與智慧型指標、函式重載、物件導向程式設計。
以上引自 wikipedia
C++ 雖然是一門古老的語言,易讀性也比不過其他的腳本語言,可至今仍有大量的工程師在使用,這也是各大比賽中最常出現的語言。如 APCS、ITSA 等,所以對想讀資訊的同學,是非常值得深入學習的語言。
2020 TIOBE 程式語言排行
這邊我們選用線上編譯器--- ideone,方便又快速。
↑ 左下角記得選C++,如果要自訂輸入請點
按
就會看到結果了
這個程式常為初學者的第一個程式
#include <iostream>
using namespace std;
int main(){
cout<<"Hello World";
return 0;
}
首先看這兩行:
#include <iostream>
using namespace std;
#include
就是引入的意思,引入標頭檔iostream
(input / output stream的縮寫),很多新手會問什麼是標頭檔,標頭檔就像字典一樣,告訴電腦這個字是什麼意思,假如今天給你一個英文單字Apple,但你沒學過英文所以不知道是什麼意思,但我再給你一本字典讓你去查,你就會知道這個字叫蘋果,標頭檔就像那個字典,讓電腦知道你要他幹什麼。
using namespace std;
這段話就是在告訴電腦我今天要用的東西在std
(標準函數庫)這個空間裡面,就像字典厚厚一本同一個字有可能有不同的意思,所以我們告訴電腦我們要的東西在std
這個範圍裡面,就不容易搞錯我們的意思了。
再來看到主函式main
:
int main(){
...
return 0;
}
這是 C++ 程式中,程式的進入點,就是告訴電腦要從這裡開始執行,整個函式用大誇號包起來,前面的int
表示函式結束時會回傳整數(Integer),最後一行return 0;
,也就是程式結束回傳0
,通常回傳0
表示程式正常結束,當然也可以回傳其他數字讓其他程式做進一步的處理,而在標準 C++ 中沒有指定return
,main
預設也會回傳0
。
接下來看main
中的程式碼:
cout<<"Hello World";
C++中每行都要用;
表示結束,cout
是表示輸出,而<<
是輸出的運算子,更詳細的觀念會在後面介紹,簡單來說cout<<"Hello World";
就是把Hello World
輸出在銀幕上。
在編譯器看到就會長這樣
這章就先到這邊,下一章會開始介紹基本的輸出輸入。
]]>