程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言-循環結構及break、continue,breakcontinue

C語言-循環結構及break、continue,breakcontinue

編輯:關於C語言

C語言-循環結構及break、continue,breakcontinue


循環結構

--------------------------

--1-- 結構循環1.1 while循環1.2 do…while循環1.3 for循環--2-- break和continue2.1 break關鍵字2.2 continue關鍵字

--------------------------

 

 

【寫在開頭:】

生活中的循環:

 

C語言中的循環:

循環結構是程序中一種很重要的結構。其特點是,在給定的條件成立時,反復執行某程序段,直到條件不成立為止。

C語言中提供了多種循環語句:

1)goto語句和if構成循環(已經被摒棄)

2)while語句

3)do-while語句

4)for語句

構成循環的幾個條件:

一般來說一個循環需要以下幾部分構成

1)循環控制條件

  循環退出主要依據

2)循環體

  循環過程中重復執行的代碼塊。

3)能夠讓循環結束的語句(遞增、遞減、真、假等)

 

--1-- 結構循環

1.1 while循環

1)語法格式

  while(條件)

  {

  語句1;

  語句2;

  …

  語句n;

  }

 

2)while循環執行特點

當條件成立時一直執行程序體。

 

3)示例

從鍵盤上輸入一個數n,計算1+2+3…+n的值。

    //定義變量
    int i = 1, n = 0, sum = 0;

    //接受鍵盤輸入n並賦值給變量n
    printf("請輸入累加上限:\n");
    scanf("%d",&n);

    //while循環條件小於n
    while (i <= n) {
        sum += i;   //累加
        i++;
    }

    printf("從1累加到%d的值是:%d\n",n,sum);

 

4)補充

scanf的原理:如果輸入緩沖區不為空,則不會讓用戶再次輸入內容,而直接沖緩沖區中繼續獲取。

最簡單的死循環:while(1);

 

1.2 do…while循環

1)語法格式

  do{

  語句1;

  語句2;

  …

  語句n;

  }while(條件);

 

2)do…while循環的特點:

不管while中的條件是否成立,至少會執行一次循環體。

 

3)while和dowhile的循環類型不同

while循環是一個當型循環,當條件滿足時再執行循環體;

do…while循環是直到型循環,先執行循環體,再判斷條件,直到條件為假時結束。

 

4)do...while示例

 

    int x = -3;
    do{
        printf("do...while\n");
        x--;
    }while (x > 0); //do...while循環 無論條件是否滿足,循環體都會執行一次

 

1.3 for循環

1)for語法格式

C語言中for語句的使用最為靈活,完全可以代替while語句

一般形式:

  for(表達式1;表達式2;表達式3){

  語句塊;

  }

 

2)for循環執行過程

執行順序:

  1)先求表達式1,給i初始化

  2)求解表達式2,若其值為真(非0),則執行for語句中指定的內嵌語句-->表達式3

  3)執行表達式4

  -->循環完一遍之後執行第二步,再依次往下

    注意:步驟1)在整個循環中只執行一次

 

3)for循環的其他形式

  1)表達式1省略

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

 

  2)表達式1、3省略

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

 

  3)表達式1、2、3省略

    int i = 0;

    for(;;){
        
        if (i < 5){
            
            printf("%d", i);
            
            i++;
            
        } else{
            
            break;
            
        }
        
    }

 

 4)最簡單的for循環

  for (; ; );

 

5)for循環的嵌套使用

打印圖形

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

 

分析:

內層循環打印一行,外層循環5次打印5行

    for (int j = 0; j < 5; j++) {
        for (int i = 0; i < 5; i++) { //內層打印行
            printf("*\t");
        }
        printf("\n");
    }

 

 

--2-- break和continue

2.1 break關鍵字

break和continue都可以用在循環中,用來跳出循環/結束循環

break用法

break語句通常用在循環和開關語句中。

 

注意:

1)break對if-else不起作用。

2)break用於跳出當前循環(結束當前循環)。

3)break影響的是當前的這個循環,對外層循環不起作用

 

示例

計算r=1到r=10時圓的面積,直到面積大於100為止

分析:

圓的面積 area = 3.14 * r * r;

    //計算r=1到r=10時圓的面積,直到面積大於100為止
    for (int r = 1; r <= 10; r++) {
        double area = 3.14 * r * r;
        if (area > 100) {
            break; //面積大於100 結束循環
        }
        
        printf("area = %.2f\n", area);
    }

 

2.2 continue關鍵字

continue用於結束本次循環,繼續下次循環

continue只用在for、while、do-while等循環體中,常與if語句一起使用,用來加速循環

 

示例

把100-200之間不能被3整除的數輸出。

分析:

被3整除時結束本次循環進入下一次

    //把100-200之間不能被3整除的數輸出
    for (int i = 100; i <= 200; i++) {
        
        if (i % 3 == 0) {
            continue; //整除則跳出本次循環
        }
        printf("i = %d\n", i);
    }

 

總結:

從上面可以看出:

break跳出循環後循環就結束了,而continue跳出循環後還繼續下一次循環。這就是最大的區別。

 

 

【寫在結尾:】

『下雨了,滴答滴答,從小最喜歡的,就是聽雨的聲音...』

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved