C語言——循環語句知識科普

循環語句

一、內容提要

1.for循環;

2.while循環;

3.do while循環;

4.break的使用;

5.continue的使用;

二、內容詳解

1、for循環;

for(表達式1;表達式2;表達式3)
{
語句塊1
}

表達式1:初始化;最早被執行;有且執行一次。
表達式2:判斷,爲真循環繼續,爲加循環結束;每次進入循環都需判斷;每次都執行。
表達式3:步進,修改循環因子值;執行完語句塊1之後執行;每次都執行。
分析如下代碼:

int main()
{
    char *strl = "abcde";//字符串常量
    char str2[]="abcde";//字符數組
    str1[0] = 'x';//崩潰,試圖修改字符串常量的值
    str2[0] = 'x';
    
    //strcpy,strcat,strcmp,strlen,atoi,itoa
    
    return 0;
}

執行結果如下圖:
在這裏插入圖片描述
在這裏插入圖片描述

####表達式1,最早執行,只執行一次

####在每一次循環中,先執行表達式2,如果爲真則進入循環裏,執行語句塊1,最後再執行表達式3.

在這裏插入圖片描述

在這裏插入圖片描述

####表達式2爲假,循環結束
表達式2爲假,循環結束

例2:輸出三個數字

 int main()
 {
     int i;
     for(i=0;i<3;i++)
     {
         printf("%d\n",i);
     }
     return 0;
 }

for循環中的三個表達式都可以省略(兩個分號不能省),例如上面的程序可以(不建議)改成如下代碼


int main()
{
    int i = 0;//初始化
    for( ; ; )
    {
        if(i>=3)//判斷
        {
            break;
        }
        printf("%d\n",i);
        i++;//修改循環因子
    }
    return 0;
}

for循環是使用的最多的循環語句,其最大的特點就是三個表達式放在一起,不容易漏寫。

2、while循環;

while(表達式1)
{
語句塊1
}
表達式1爲真循環繼續,爲假循環結束。
上面的例子改成while循環。

int main()
{
    int i = 0;//初始化
    while(i<3)//判斷
    {
        printf("%d\n",i);
        i++;//修改循環因子
    }
    return 0;
}

3、do while循環;

do
{
語句塊1
}while(表達式1);
表達式1爲真循環繼續,爲假循環結束。
上面的例子改成do while循環。

int main()
{
    int i = 0;//初始化
    do{
        printf("%d\n",i);
        i++;//修改循環因子
    }while(i<3);//判斷
    return 0;
}

注意:
while保證語句塊至少執行0次及以上;
do while保證語句塊至少執行1次以上。
當表達式的第一次的值爲“真”時,兩種循環完全相同。

4、break的使用;

break用於跳出switch或者跳出一層循環
例如:求滿足如下條件的值
1+2+#+…+x<1000 且1+2+#+…+x+(x+1)>1000
輸出x和求和的值。

void SumTo1000()
{
    int sum = 0;//保存累加的值
    int i;//i後面要用,定義在for外面
    for(i=1; ;i++)
    {
        sum += i;
        if(sum > 1000)
            break;//符合條件,循環結束
    }
    printf("x=%d,和=%d\n",i-1,sum);
}

5、continue的使用;

continue:提前結束本次(趟)循環,直接進入下一次(趟)循環。
例如:輸出100~200之間的不能被3整除的數
可以這樣實現

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

也可以利用continue關鍵字這樣實現

for(n=100;n<200;n++)
{
    if(n%3==0)
        continue;//提前結束本次循環,後面的輸出不執行
    printf("%d",n);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章