C語言基礎
程式語言
程式執行環境
程式整合開發工具
程式基礎
輸出入敘述
- cin
- cout
變數與資料型態
字元型態
char
整數型態
- byte(8位元)
- short(16位元)
- int(32位元,預設)
- long(32位元)
浮點數型態
- float
- double(預設)
程式敘述與運算子
選擇與判斷敘述
if/if...else
switch
重覆敘述
goto
goto是程式中可以“跳至“任何一個位置的敘述,首先要先設定一個路標,再用goto跳至這個路標。範例:
Repeat:
cout << "這是我的第一支程式" << endl;
goto Repeat;
上面的程式會重複地執行cin與goto,於是,變成了一個“無窮盡“的迴圈。那要如何讓上面的程式停上來?
char r;
Repeat:
cout << "這是我的第一支程式" << endl;
cout << "是否重複?(按Y表重複)" << endl;
cin >> r;
if ( r == 'Y' || r == 'y') goto Repeat;
上面的程式中,依據使用者輸入Y或y來決定是否執行goto。
while
while是程式中用來判斷是要重複執行的程式元素,底下的程式示範了一個從1印到9的迴圈程式:
int i = 1;
while ( i <= 9) {
cout << i << " ";
i++;
}
cout << endl;
do while
do..while與while不同之處在於,do...while是先做一次,然後再判斷是否重複。例如,生活中,先嚐一下,好吃繼續吃…
char r;
do {
cout << "這是我的第一支程式" << endl;
cout << "是否重複?(按Y表重複)" << endl;
cin >> r;
} while ( r == 'Y' || r == 'y');
for
for 敘述的語法
先前,我們學會 while、do-while 兩種迴圈的用法,接著我們看第三種迴圈, for 的語法:
for (起始敘述; 條件式; 更新敘述) {指令一;
或
for (起始敘述; 條件式; 更新敘述) {
指令一;
指令二;
指令三;
}
起始值是進入迴圈一開始要執行的動作,條件式是進入迴圈的條件,而更新值則是執行完每次的迴圈要執行的動作,我們舉個例子來看:
for(i=1; i<=10; i++) cout << i << ",";
上面的語法,程式執行的步驟如下:
1.設定變數 i=1;
2.檢查 i<=10 是否成立,不成立則跳出迴圈 ( 即跳至 6. )
3.執行 cout << i << ",";
4.執行 i++; ( 即 i=i+1; )
5.跳至 2. 的位置
6.迴圈結束
在 for 迴圈中,我們可以使用 break 和 continue 指令來中斷整個迴圈執行或跳至迴圈結尾處。
如果不需要起始值或更新值,則可以空白,若條件式空白,則為無條件進入迴圈。
如果起始值或更新值有兩個以上,可以用逗點 , 隔開,例如:
for(a=1, b=1; a<=100; a++, b++)
範例:使用for來計算1+2+...+N 之總合
1+2+...+N 之總合可以利用 S= (1+N)*N/2 這個公式直接求解,但這邊我們拿來當for的應用實例,用for讓它從 1 加到 100,整個程式如下:
int sum=0, i;
for(i=1; i<=100; i++) sum += i;
cout << "1+2+...+100= " << sum;
上面的 sum 代表總合,一開始是 0,接著每次加上 i 當時的值,而 i 的值會從 1 遞增到 100,最後 sum 的值就是 1 加到 100 的總合了。
格式化輸出敘述
陣列
陣列是一種連續性的資料儲存空間,一陣列裡的資料型態是一樣的,元素與元素在記憶中的位置是相鄰的,通常我們會利用一個陣列變數來代表整體的資料。
陣列分為一維陣列陣列、二維或多維陣列。
表示方法如下:
資料型態 陣列名稱[陣列大小]; //一維陣列
int a[10];
資料型態 陣列名稱[陣列大小][陣列大小]; //二維陣列 int a[10][10];
宣告陣列變數時,也可一併給與初始值:
int x[5] = {1,2,3,4,5};
int y[] = {1,2,3};
int z[3][4] = {{1,2,3,4},{5,6,7,8},{0,1,2,3}};
int a[];
上面例子裡的y陣列大小,是由後面{}裡元素的個數決定。int a[]並沒有分配儲存陣列內容的空間,因此可視為指標宣告。
陣列元素的引用方式:
陣列名稱[索引值] a[2]
陣列名稱[索引值][索引值] a[1][2]
索引值是指出要檢索陣列中第幾個元素,在C/C++中,索引值一律從0起算。
字元與字串
字元是單一個字元,以單引號框起來的,如:
'A','a'
字串是一個字元以上的字元陣列,而且,陣列會多一個結束字元'\0',表示字串的結束,字串以雙引號框起來,如:
"I like apple."
"I like programming."
字串既然叫字元陣列,那就能夠以索引的方式來存取字串的每一個字元。如:
char str[] = "I like programming.";
cout << str[4] << endl;
上面程式會輸出k