1. 程式人生 > 其它 >三種迴圈

三種迴圈

線上C環境:https://clin.icourse163.org/

1. for迴圈

階乘

  • n! = 1×2×3×4× … ×n
  • 寫⼀個程式,讓⽤戶輸⼊n,然後計算輸 出n!
  • 變數:顯然讀⽤戶的輸⼊需要⼀個int的n,然後 計算的結果需要⽤⼀個變數儲存,可以 是int的factor,在計算中需要有⼀個變數 不斷地從1遞增到n,那可以是int的i
#include <stdio.h>

enum COLOR {RED, YELLOW, GREEN, NumCOLORS};

int main() {
    
  int n;
  scanf("%d",&n);
  
int fact =1; int i = 1; while(i<=n){ fact*=i; i++; } printf("%d!=%d\n",n,fact); return 0; }

for

#include <stdio.h>

enum COLOR {RED, YELLOW, GREEN, NumCOLORS};

int main() {
    
  int n;
  scanf("%d",&n);
  int fact =1;
  int i;
 for(i=1; i<=n;i++){
     fact
*=i; } printf("%d!=%d\n",n,fact); return 0; }

for迴圈像⼀個計數迴圈:設定⼀個計數器,初始化 它,然後在計數器到達某值之前,重複執⾏迴圈體, ⽽每執⾏⼀輪迴圈,計數器值以⼀定步進進⾏調整, ⽐如加1或者減1

for ( i=0; i<5; i=i+1 ) {
               printf("%d", i);
}

for = 對於

for ( count=10; count>0; count-- )

就讀成:“對於⼀開始的count=10,當 count>0時,重複做迴圈體,每⼀輪迴圈 在做完迴圈體內語句後,使得count--。 ”

⼩套路

做求和的程式時,記錄結果的變數應該初 始化為0,⽽做求積的變數時,記錄結果 的變數應該初始化為1

迴圈控制變數i只在迴圈⾥被使⽤了,在循 環外⾯它沒有任何⽤處。因此,我們可以 把變數i的定義寫到for語句⾥⾯去

try

1×1還是1,所以程式的迴圈不需要從1開 始,那麼改成從多少開始合適呢?這樣修 改之後,程式對所有的n都正確嗎?這樣 的改動有價值嗎?

除了可以從1乘到n來計算n!,還可以從n乘 到1來計算吧?試試把迴圈換個⽅向來計 算n。這時候,還需要迴圈控制變數i嗎?

for迴圈

for ( 初始動作; 條件; 每輪的動作 ) {

}

for中的每⼀個表示式都是可以省略的 for (; 條件; ) == while ( 條件 )

迴圈次數

for ( i=0; i<n; i++ )

則迴圈的次數是n,⽽迴圈結束以後,i的
值是n。迴圈的控制變數i,是選擇從0開始
還是從1開始,是判斷i<n還是判斷i<=n,
對迴圈的次數,迴圈結束後變數的值都有
影響

Tips for loops

如果有固定次數,⽤for

如果必須執⾏⼀次⽤do_while

其他情況⽤whil