- for 迴圈:通常使用在
已知
需要重複多少次程式執行區塊,一般會搭配一個counter計數器
決行執行次數for (計數器變數; 重複執行的條件; 累加器增加/減少方式) { // 迴圈程式重複執行區塊 }
- while 迴圈:使用在
未知
具體需要多少次程式執行區塊,透過條件判斷
跳出迴圈來結束while(條件) { // 迴圈程式重複執行區塊 // 修改條件,避免變成無窮迴圈跳不出去 }
- do...while 迴圈:為重複迴圈,但跟 while 迴圈不同在於do...while
條件判斷放在後面
,所以即便條件不符合,至少會執行一次程式區塊,
p.s. while 迴圈為不符合條件則不會執行do { // 即便條件不符合,至少會執行一次 // 迴圈程式重複執行區塊 // 修改條件,避免變成無窮迴圈跳不出去 } while(條件);
- break 迴圈中斷:在 for 迴圈、while 迴圈中途可使用break跳出執行
# include <stdio.h>
int main() {
// 宣告 i 為計數器變數,初始化為 1。 當 i <= 3 時符合條件進入迴圈, i++ 代表每次執行區塊後計算器都累加 1(i++ 等同於 i = i + 1)。當 i > 3 則不符合條件,離開迴圈
for (int i = 1; i <= 3; i++) {
if (i == 2) {
break;
}
// 縮排代表迴圈執行區塊 block
// %d 為整數格式化,\n 為換行符號
printf("目前第 %d 次執行\n", i);
}
printf("程式結束");
}
- continue 迴圈中斷:跳過這次迴圈執行,直接到下一次迴圈執行
p.s.
continue:若條件符合還是會繼續執行,只是跳過這次而已
break:直接跳出整個迴圈
# include <stdio.h>
int main() {
// 宣告 i 為計數器變數,初始化為 1。 當 i <= 3 時符合條件進入迴圈, i++ 代表每次執行區塊後計算器都累加 1(i++ 等同於 i = i + 1)。當 i > 3 則不符合條件,離開迴圈
for (int i = 1; i <= 3; i++) {
if (i == 2) {
continue;
}
// 縮排代表迴圈執行區塊 block
// %d 為整數格式化,\n 為換行符號
printf("目前第 %d 次執行\n", i);
}
printf("程式結束");
}
- 無窮迴圈:因為沒有條件的更新(
保持符合條件
),持續執行不會跳出,有可能會造成資源消耗過多導致電腦當機 - switch 判斷:相較於if邏輯判斷較為簡潔,但switch 判斷的運算式只能為
單一字元
或是數字
,若是其他情況請使用 if...else 判斷
switch (運算式) {
case value_1:
// 執行程式區塊
// 記得要 break 不然會往下執行下去
break;
case value_2:
// 執行程式區塊
break;
case value_3:
// 執行程式區塊
break;
default:
// 都沒有符合執行區塊
}
- 在 C 語言中對於陣列要求比較嚴格,陣列內元素必須為
相同資料型別
int numbers[3] = {1, 3, 7}; // array // index 0 的元素為 3 printf("%d", number[1]); // 讀取元素 // 更新資料 number[2] = 7; // 重新賦值即可
- 指標(pointer):負責儲存記憶體位置(memory address)
Var 為一個一般變數,ptr 為一個指標變數,負責存 Var 的記憶體位址,當然 ptr 自己也有自己的記憶體位址。當要取 Var 值時,可以透過*ptr 取值
。
// 宣告一個指標變數(和取值的 * 意義不同,這邊是代表宣告 ptr 是一個指標變數) char *ptr;
C語言的函式名稱:add
// 定義函式 int add(int x, int y) { // 函式執行區塊,縮排 int result; result = x + y; return x + y; }
呼叫函式:有參數可以傳入參數,接收回傳值
int main() { int z = add(1, 7); printf("相加結果:%d\n", z); }