首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言入門

C語言循環語句與控制流精講:for/while/do-while/break/continue/goto

     編輯:C 語言入門

Turbo C 2.0 提供三種基本循環:for、while、do-while。

一、循環語句

1. for 循環

for(初始化; 條件; 增量) 語句;
  • 三部分均可省略,但分號不可省:for(;;) 死循環,for(i=1;;i+=2) 無條件。
  • 多層嵌套:外層 i 變一次,內層 j 跑完一輪。
// 1+2+...+100
int sn=0, i; for(i=1; i<=100; i++) sn+=i;

2. while 循環

while(條件) 語句;
  • 先判斷後執行,可能零次執行。
  • 循環體可為空語句:while((c=getche())!='\n');
int sn=0, i=0; while(++i<=100) sn+=i;

3. do-while 循環

do { 語句塊; } while(條件);
  • 先執行後判斷,至少執行一次。
  • 注意結尾分號:}while(i<=100);
int sn=0, i=1; do sn+=i; while(++i<=100);

二、循環控制

1. break

  • 終止當前循環/開關,執行後續代碼。
  • 多層循環中只跳出一層。
for(i=1;i<=100;i++) { if(i==51) break; sn+=i; } // 1+...+50

2. continue

  • 跳過本次循環剩餘語句,直接進入下一次迭代。
for(i=1;i<=100;i++) { if(i==51) continue; sn+=i; } // 1+...+50+52+...+100

3. goto

  • 無條件跳轉到同函數內標號:goto label; ... label: ;
  • 慎用,但多層循環同時退出時比多層 break 簡潔。
for(i=0;i<2;i++) for(j=0;j<3;j++) for(k=0;k<3;k++) {
    if(k==2) goto loop;
    printf("%d %d %d\n",i,j,k);
} loop: ;

三、經典練習

  1. 最大公約數:從 min/2 遞減尋找第一個能整除兩數的數。
  2. 階乘和:temp*=i; sn+=temp; 用 long 防溢出。
  3. 素數判斷:循環到 sqrt(num),標志變量復位,break 提前退出。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved