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

C語言程式設計初步(八):跳轉語句 goto、break、continue 詳解

     編輯:C 語言基礎

四種跳轉語句

  • goto:無條件轉移
  • break:跳出 switch 或本層循環
  • continue:結束本次循環,進入下一次判斷
  • return:從函數返回(詳函數章)

goto 無條件轉移


goto 標號;
標號: 語句;  // 標號為標識符 + 冒號
  • 通常配合 if 實現條件轉移、構建循環、跳出循環
  • 結構化程式設計不建議使用,易造成流程混亂(義大利麵條代碼)

範例:用 goto 統計字符數


void main() {
    int n=0;
    printf("input a string\n");
loop:
    if (getchar() != '\n') {
        n++;
        goto loop;
    }
    printf("%d", n);
}

break 跳出語句

  • 僅用於 switch 或循環(for/while/do-while)
  • 跳出本層 switch/循環,繼續執行後續程式
  • 無需標號,方向明確
  • 可使循環有多個出口,增加靈活性

continue 結束本次循環

  • 僅用於循環體中
  • 跳過本次循環剩餘語句,直接進入下一次循環條件判斷
  • 不跳出循環,只結束本輪

範例 1:輸出 100 內 7 的倍數


for (n=7; n<=100; n++) {
    if (n%7 != 0) continue;
    printf("%d ", n);
}

範例 2:檢測相鄰相同字符


void main() {
    char a,b;
    b = getchar();
    while ((a=getchar()) != '\n') {
        if (a == b) {
            printf("same character\n");
            break;
        }
        b = a;
    }
}

範例 3:輸出 100 內質數(優化版)


#include 
void main() {
    int n,i,k;
    for (n=2; n<=100; n+=2) {  // 偶數跳過(但 2 是質數!此處邏輯有誤,應從 3 開始步長 2)
        k = sqrt(n);
        for (i=2; i= k) printf("%2d", n);
    }
}

修正: 質數判斷應從 2 開始,或特殊處理 2,奇數步長 2。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved