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 如果設定的停止條件都沒有符合,很容易肇生無窮迴圈事件。

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。