天天看點

[c語言]超詳細帶你了解語句“分支語句和循環語句”

目錄

​​1.分支語句和循環語句​​

​​什麼是C語言語句?​​

​​1. 表達式語句​​

​​2.标簽語句​​

​​3. 循環語句​​

​​4. 複合語句​​

​​5. 跳轉語句​​

​​6. 分支語句(選擇結構)​​

​​1. if  語句​​

​​3.while語句​​

​​循環語句​​

​​for 循環​​

​​for 循環的一般形式為:​​

​​do...while 循環​​

[c語言]超詳細帶你了解語句“分支語句和循環語句”

1.分支語句和循環語句

本章學習重點分支語句和循環語句的使用

分支語句
  • if
  • Switch
循環語句
  • while
  • for
  • do  while
goto語句
[c語言]超詳細帶你了解語句“分支語句和循環語句”

什麼是C語言語句?

c語言中由一個;隔開的叫一條語句

​​C程式​​的執行部分是由語句組成的。 程式的功能也是由執行語句實作的。

從程式流程的角度來看,程式可以分為三種基本結構, 即​​順序結構​​、分支(選擇)結構、​​循環結構​​。

C語句可分為以下五類:

  1. 表達式語句
  2. 标簽語句
  3. 循環語句
  4. 複合語句
  5. 跳轉語句
  6. 分支語句(選擇結構)
  7. 空語句

下面分别作詳細說明:

[c語言]超詳細帶你了解語句“分支語句和循環語句”

1. 表達式語句

​​表達式語句​​由表達式加上分号“;”組成。

其一般形式為:​​表達式​​;執行表達式語句就是計算表達式的值和執行副作用。

例如: x=y+z; a=520;​​指派語句​​;

y+z;加法運算語句,但計算結果不能保留,無實際意義;

i++; 自增1語句,i值增1。

i++; 是先運算i後再加1。

++i; 是先把i值增1後運算。

包括空語句,函數調用語句在内都屬于表達式語句。

[c語言]超詳細帶你了解語句“分支語句和循環語句”

2.标簽語句

标簽語句有3種:

标簽名:語句

case 常量表達式:語句

default:語句

說明:其中case語句和default語句隻出現于switch語句中。

注意,同一個switch中case後的表達式隻能出現一次

switch(exp)

{

case 2:;

case 1+1:;

}

//ERROR      

标簽名:語句用于goto,作用範圍是函數内部,無法跨函數,并且需要保證同函數内部的标簽名唯一。

[c語言]超詳細帶你了解語句“分支語句和循環語句”

3. 循環語句

循環語句有4種,分别是

while ( expression ) statement

do statement while ( expression ) ;

for ( expression(opt) ; expression(opt) ; expression(opt) ) statement

for ( declaration expression(opt) ; expression(opt) ) statement

循環語句用于實作程式的循環流程。

[c語言]超詳細帶你了解語句“分支語句和循環語句”

4. 複合語句

用括号{}括起來組成的一個語句稱​​複合語句​​。 在程式中應把複合語句看成是單條語句,而不是多條語句,例如

{

x=y+z;

a=b+c;

​​printf​​(“%d%d”,x,a);

}

是一條複合語句。

[c語言]超詳細帶你了解語句“分支語句和循環語句”

5. 跳轉語句

跳轉語句有4種,分别是

goto 标簽 ;

continue ;

break ;

return 表達式(可選) ;

跳轉語句控制程式跳轉到另一處執行。

6. 分支語句(選擇結構)

選擇語句有3種,分别是

if ( expression ) statement

if ( expression ) statement else statement

switch ( expression ) statement

[c語言]超詳細帶你了解語句“分支語句和循環語句”
[c語言]超詳細帶你了解語句“分支語句和循環語句”

1. if  語句

  文法結構(3種):

   if (表達式)

           語句;

   if(表達式)

           語句1;

   else 

           語句2;

//多分支

   if(表達式1)

           語句1;

else   if(表達式2)

            語句2;

else

            語句3;

代碼示例:

#include"stdio.h"
int main()
{
  int age = 20;
  if (age < 18)
    printf("未成年\n");
  else if (age >= 18 && age < 28)
    printf("青年\n");
  else if (age >= 28 && age < 50)
    printf("壯年\n");
  else
    printf("老年\n");


  /*if (age >= 18)
    printf("成年");
  else
    printf("未成年");*/
  return 0;
}      

注:C語言中表示真假”

      0表示假,非0表示真

如果條件成立,要執行多條語句,使用代碼塊

一對{}就是一個代碼塊

#include"stdio.h"
int main()
{
  int main()
  {
    if (表達式)
    {
      語句清單1;
    }
    else
    {
      語句清單2;
    }
    return 0;
  }      

代碼示例:

int week []  = { 1,2,3 };
  scanf_s(" %d\n",&week);
  if (week == 0) 
  {
    printf("好好學習\n");
    printf("完成作業\n");
  }
  else if (week == 1)
  {
    printf("出門鍛煉\n");
    printf("強身健體\n");
  }
  else
  {
    printf("吃喝玩樂\n");
    printf("風花雪月\n");
  }      
[c語言]超詳細帶你了解語句“分支語句和循環語句”

2. Switch語句

Switch語句也是一種分支語句,常常用于多分支的情況

比如:

輸入1, 輸出星期一

輸入2, 輸出星期二

輸入3, 輸出星期三

輸入4, 輸出星期四

輸入5, 輸出星期五

輸入6, 輸出星期六

輸入7, 輸出星期日

#include"stdio.h"
int main()
{
    int week=0;
    scanf_s(" % d", &week);
    switch (week)
    {
    case 1:
        printf("星期一\n");
        break;
    case 2:
        printf("星期二\n");
        break;
    case 3:
        printf("星期三\n");
        break;
    case 4:
        printf("星期四\n");
        break;
    case 5:
        printf("星期五\n");
        break;
    case 6:
        printf("星期六\n");
        break;
    case 7:
        printf("星期日\n");
        break;
    default:
        printf("輸入有誤");
        break;
    }
        return 0;
    }      

case 整形常量表達式:

         語句;

[c語言]超詳細帶你了解語句“分支語句和循環語句”

3.while語句

while語句的一般形式為:

    while(表達式) 語句

其中表達式是循環條件,語句為循環體。

while語句的語義是:計算表達式的值,當值為真(非0)時, 執行循環體語句。其執行過程可用下圖表示。

[c語言]超詳細帶你了解語句“分支語句和循環語句”

用while語句計算從1加到100的值。用傳統流程圖和N-S結構流程圖表示算法,見圖:

[c語言]超詳細帶你了解語句“分支語句和循環語句”
#include <stdio.h>
int main(void){
int i,sum=0;
i=1;
while(i<=100){
sum=sum+i;
i++;
}
printf("%d\n",sum);
return 0;
}      

 總結:break在while循環中的作用

循環中隻要遇到break,就停止後期所有的循環,直接終止循環

continue在while循環中的作用

continue就是終止本次循環也就是說本次continue後邊的代碼不會再執行,而是直接跳轉到while語句的判斷部分,進行下一次循環的入口判斷

[c語言]超詳細帶你了解語句“分支語句和循環語句”

循環語句

for 循環

和 while 一樣,for 循環也是一個頂部驅動的循環,但是它包含了更多的循環邏輯,如下所示:

for ([表達式1];[表達式2];[表達式3])

    語句

在一個典型的 for 循環中,在循環體頂部,下述三個動作需要執行:

(1) 表達式 1:初始化

隻計算一次。在計算控制表達式之前,先計算一次表達式 1,以進行必要的初始化,後面不再計算它。

(2) 表達式 2:控制表達式

每輪循環前都要計算控制表達式,以判斷是否需要繼續本輪循環。當控制表達式的結果為 false,結束循環。

(3) 表達式 3:調節器

調節器(例如計數器自增)在每輪循環結束後且表達式 2 計算前執行。即,在運作了調節器後,執行表達式 2,以進行判斷。

#include <stdio.h>
int main(){
    int i, sum=0;
    i = 1;  //語句①
    while(i<=100 /*語句②*/ ){
        sum+=i;
        i++;  //語句③
    }
    printf("%d\n",sum);
    return 0;
}      

for 循環的一般形式為:

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

    語句塊

}

它的運作過程為:

1) 先執行“表達式1”。

2) 再執行“表達式2”,如果它的值為真(非0),則執行循環體,否則結束循環。

3) 執行完循環體後再執行“表達式3”。

4) 重複執行步驟 2) 和 3),直到“表達式2”的值為假,就結束循環。

上面的步驟中,2) 和 3) 是一次循環,會重複執行,for 語句的主要作用就是不斷執行步驟 2) 和 3)。

“表達式1”僅在第一次循環時執行,以後都不會再執行,可以認為這是一個初始化語句。“表達式2”一般是一個關系表達式,決定了是否還要繼續下次循環,稱為“循環條件”。“表達式3”很多情況下是一個帶有自增或自減操作的表達式,以使循環條件逐漸變得“不成立”。

​​​for循環​​的執行過程可用下圖表示:

[c語言]超詳細帶你了解語句“分支語句和循環語句”
[c語言]超詳細帶你了解語句“分支語句和循環語句”

do...while 循環

do...while 循環是一種底部驅動的循環:

do 語句 while (表達式);

在控制表達式被第一次計算之前,循環體語句會首先被執行一次。與 while 和 for 循環不同,do...while 循環會確定循環體語句至少執行一次。如果控制表達式的值為 true,那麼另一次循環就會繼續;如果是 false,則循環結束。

do-while語句的一般形式為:

    do

        語句

    while(表達式);

這個循環與while循環的不同在于:它先執行循環中的語句,然後再判斷表達式是否為真,如果為真則繼續循環;如果為假,則終止循環。是以,do-while循環至少要執行一次循環語句。其執行過程可用下圖表示。

[c語言]超詳細帶你了解語句“分支語句和循環語句”

繼續閱讀