Zero to Hero – C訓練營(part 4)-重複執行程式(迴圈)
連續印出5次Hello!,可以手動呼叫printf("hello")五次,但是如果要印出100次甚至更多呢?豈不是要貼到手軟??電腦最強就是做重複的事情,接下來示範什麼是迴圈使用
重複執行有兩種方式,一種是for迴圈;另外一種是while 重複執行
1.for 迴圈
起手式
for (int i=起始值; i的停止值; i的遞增或遞減值){
重複執行 do something;
}
設定一個例子,1+2+3+…+100的場景
#include <stdio.h>
int main(){
int sum = 0;
for (int i=1; i<=100; i++){
sum += i;
}
printf("計算結果為: %d\n",sum);
return 0;
}
while 重複執行程式
起手式
while (條件為真){
重複執行 do something;
}
設定一個例子,1+2+3+…+100的場景
#include <stdio.h>
int main(){
int sum = 0,count = 1;
while (count <= 100){
sum += count;
count ++ ;
}
printf("計算結果為: %d\n",sum);
return 0;
}
3. 設定中斷點或是跳過重複某段執行程式(會搭配IF判斷式進行)
使用break停止及使用continue跳過該次
break 使用範例(加總超過500就停止程式,並列印出總計):
#include <stdio.h>
int main(){
int sum = 0;
for (int i=1; i<=100; i++){
if (sum > 500){
printf("超過500了,跳出迴圈...\n");
break;
}
sum += i
}
printf("計算結果為: %d\n",sum);
return 0;
}
使用continue 跳過該次(遇到雙數不加總) :
#include <stdio.h>
int main(){
int sum = 0,count = 1, times=0;
while (count <= 100){
if (count % 2==0){
times ++
count ++;
continue;
}else{
sum += count;
count ++;
}
}
printf("總共跳過: %d幾次 \n",times);
printf("計算結果為: %d\n",sum);
return 0;
}
注意事項:
不管使用while或是for都可以達到重複執行程序,不過需要注意的是while及for 如果設定的停止條件都沒有符合,很容易肇生無窮迴圈事件。