C語言程序基本結構的簡單分析與解釋

C語言的補習課程中,有些學生對于C語言的結構不是很了解,為此為了讓學生對于C語言有多的認識,有利于促進C語言的學習,本文對C語言的程序結構進行了簡單的分析與解釋。

程序結構:在C語言程序中,一共有三種程序結構:順序結構、選擇結構(分支結構)、循環結構;另外會介紹一個重要的結構,函數的介紹。

一、流程控制

1.順序結構

默認的流程結構,按照書寫順序執行每一條語句

我們最開始接觸的就是順序結構:

#include

int main(int argc, const char *argv[])

{

         printf("Hello World\n");

         return 0;

}

如上面的例子,就是最簡單的順序結構。

程序講解:

#include:標準I/O頭文件,下文中的printf需要使用這個文件

int main():主函數,一個程序的入口。一個程序有且只有一個main()函數

int:代表主函數的返回值類型是int

printf():格式化輸出,將括號內的內容打印到顯示器上,打印字符串需要用雙引號""引上

return 0;:配合主函數類型使用,一般來說返回0的程序表示程序運行成功

打印的結果為:Hello World

2.選擇結構

對給定的條件進行判斷,再根據判斷結果來決定執行那一段代碼

3.循環結構

*在給定條件成立的情況下,反復執行某一段代碼

二、選擇結構--if

1.使用方式

 1> if(表達式) 語句1

* if(i>1)  恭喜你被黑馬錄取;

 2> if(表達式) 語句1else 語句2

* if(i>1) 恭喜你被黑馬錄取;else 希望你再接再厲;

 3> if(表達式){}

if(表達式){}

else{}

 4> if (){}

else if(){}

else{}

選擇結構:C語言中常用的選擇結構主要有以下兩種:

我們引入了一個bool類型的值(也叫boolean類型,布爾類型),只有兩個值,即真和假。C語言的判斷表達式最終的值就是一個bool類型,這個判斷表達式的bool值就決定了選擇結構如何選擇,循環結構如何循環;

if else:引入關鍵字:if  else  else if

    if (bool值)     // 如果bool值為真,則執行代碼段1,否則執行代碼段2

    {

      代碼段1

    }

    else

    {

      代碼段2

    }

    if (bool值1)    // 如果bool值1為真,則執行代碼段1,否則判斷bool值2是否為真

    {

      代碼段1

    }

    else if (bool值2)  // 若bool值2為真則執行代碼段2,否則直接執行代碼段3

    {          // 開頭的if和結尾的else都只能有一個,但是中間的else if可以有好多個

      代碼段2

    }

    else

    {

      代碼段3

    }

這段代碼里,就有了選擇結構,可以根據不同的判斷,選擇相應的執行代碼 。

C 語言的編程中 ‘//’ 的含義是注釋的意思。

三、選擇結構--switch

1.使用格式

*  switch(表達式) { case 數值1: break; … default: break;}

* 舉例

 switch case:引入關鍵字:switch  case  break  default

    switch (變量)       // 執行到這一句時,變量的值是已知的

    {           // switch case語句執行時,會用該變量的值依次與各個case后的常數去對比,試圖找到第一個匹配項,找到匹配的項目后,

       case 常數1:    // 就去執行該case對應的代碼段,如果沒找到則繼續下一個case,直到default

         代碼段1;   // 如果前面的case都未匹配,則default匹配。

         break;

       case 常數2: 

         代碼段2;

         break;

       ……

       default:

         代碼段n;

         break;

    }

*break作用:跳出整個循環;如果不寫break,語句會一直向下執行,直到遇到break

這個就是switch case語句的選擇語句。

注意

第一,   case中必須是常數,而且必須是整形;

第二,   一般來說,每個case中代碼段后都必須有一個break

第三,case之后一般都會有default,雖然語法上允許沒有default,但是建議寫代碼時一定要寫。

關于兩種的比較:if elseswitch case的區別:if else適合對比條件較復雜,但是分支比較少的情況,switch case適合那種對比條件簡單,但是分支較多的情況。通常的做法是:在適合使用switch case的情況下會優先使用switch case,如果不適合則使用if else。這一點根據自身情況,選擇合適的方法使用。

2.ifswitch的比較

* 很多情況下可以互換

* if使用方式較為靈活,使用的較多;switch適合有某個值

四、循環結構

1) 循環機構--for

(1) for:

    for (循環控制變量初始化; 循環終止條件; 循環控制變量增量)

    {

      循環體

    }

#include

int main(int argc, const char *argv[])

{

         int i, sum = 0;

         for(i = 0; i<= 100; i++)

         {

                   sum = sum + i;

         }

         printf("%d\n", sum);

         return 0;

}

循環執行步驟:

第一,   先進行循環控制變量初始化;

第二,   執行循環終止條件,如果判斷結果為真,則進入第三步;如果為假則循環終止并退出;

第三,執行循環體;

第四,執行循環控制變量增量,轉入第二步;記住他的循環步驟,編寫程序的時候就會很簡單。上面的事例程序就是從從1 加到100的運算。

注意for循環()中的三部分除了循環終止條件外,其他兩部分都可以省略,但標準的for循環中,應該把循環控制變量的初始化,增量都放在()當中,并且在循環體中絕對不應該更改循環控制變量,這個在編程中要注意。

2)循環結構--while

特點

*只有滿足條件是才會執行循環體

*特別注意是否進入了死循環

(2) while:

               循環控制變量初始化

    while(循環終止條件)

    {

      循環體

      循環控制變量增量

    }

#include

int main(int argc, const char *argv[])

{

         int i = 0, sum = 0;

         while(i <= 100)

         {

                   sum = sum + i;

                   i++;

         }

         printf("%d\n", sum);

         return 0;

}

循環執行步驟:第一,先進行循環控制變量初始化(while之前);第二,判斷循環終止條件,如果判斷結果為真,則進入第三步;如果為假則不執行循環體;第三,執行循環體;第

特點

*只有滿足條件是才會執行循環體

*特別注意是否進入了死循環

3) 循環結構--do while

1.特點

* 一定會執行一次循環體

2.使用

*對比while的使用

(3) do while:

    循環控制變量初始化

    do

    {

循環體

      循環控制變量增量

    }while (循環終止條件);


#include

int main(int argc, const char *argv[])

{

         int i = 0, sum = 0;

         do

         {

                   sum = sum + i;

                   i++;

         }while(i <= 100);

         printf("%d\n", sum);

         return 0;

}

循環執行步驟:第一,先進行循環控制變量初始化(do while之前);第二,執行循環體;第三,執行循環控制變量增量;第四,判斷循環終止條件,如果判斷結果為真,則返回第二步;如果為假則直接退出循環;

上面關于循環的例子都是一樣的,但需要學會比較內部的區別。不管哪種循環結構,都不能缺少循環控制條件初始化,終止條件,循環控制變量增量,循環體這四部分;while循環是先判斷后執行,do while循環是先執行后判斷,等循環一次之后,其實都是一樣的。

補充

 1> 死循環 for(;;);  有時候我們會在子線程中使用無限循環,以達到不讓縣城退出的目的。

 2> 注意:for循環體內變量的作用域

 3> while循環和for循環的比較

* 可以互換

* for循環的變量可以及時回收

the end

評論(0)