久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > C語言程(cheng)序基本結構(gou)詳解

C語言程序基(ji)本結(jie)構(gou)詳解 時間:2017-12-29      來源:未知

在C語言(yan)的(de)補習課程中(zhong),有些學生(sheng)對于(yu)C語言(yan)的(de)結構不是很了(le)解(jie),為此為了(le)讓學生(sheng)對于(yu)C語言(yan)有多的(de)認(ren)識,有利(li)于(yu)促進C語言(yan)的(de)學習,本文對C語言(yan)的(de)程序結構進行(xing)了(le)簡單(dan)的(de)分析與解(jie)釋。

程(cheng)序(xu)(xu)結(jie)構(gou):在C語言(yan)程(cheng)序(xu)(xu)中,一(yi)共(gong)有三種程(cheng)序(xu)(xu)結(jie)構(gou):順序(xu)(xu)結(jie)構(gou)、選(xuan)擇結(jie)構(gou)(分支結(jie)構(gou))、循環結(jie)構(gou);另(ling)外會介(jie)紹一(yi)個重要的(de)結(jie)構(gou),函數的(de)介(jie)紹。

一、流程控制

1.順序結構

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

我們開始接(jie)觸的就是順(shun)序結(jie)構(gou):

#include <stdio.h>

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

{

printf("Hello World!\n");

return 0;

}

如上面(mian)的(de)例子,就是簡單的(de)順序結構。

程序講解:

#include<stdio.h>:標(biao)準I/O頭(tou)文(wen)件,下文(wen)中的printf需要使用這個(ge)文(wen)件

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

int:代(dai)表(biao)主函數的返回值類(lei)型(xing)是(shi)int型(xing)

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

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

打印的結果為(wei):Hello World!

2.選擇結構

對(dui)給定(ding)的條件進(jin)行判斷(duan),再根(gen)據判斷(duan)結果來決定(ding)執行那(nei)一段代(dai)碼

3.循環結構

*在給定條(tiao)件(jian)成立的情況下,反復執(zhi)行(xing)某一段代碼

二、選擇結構--if

1.使(shi)用(yong)方式

1> if(表達式) 語句(ju)1;

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

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

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

3> if(表達(da)式){}

if(表達式){}

else{}

4> if (){}

else if(){}

else{}

選擇結構(gou):C語言(yan)中常用(yong)的選擇結構(gou)主要有以下兩種:

我們引入了一個(ge)bool類型(xing)(xing)(xing)的(de)(de)值(也叫boolean類型(xing)(xing)(xing),布(bu)爾類型(xing)(xing)(xing)),只(zhi)有兩個(ge)值,即真和(he)假(jia)。C語言的(de)(de)判斷(duan)表達式(shi)(shi)終的(de)(de)值就是(shi)一個(ge)bool類型(xing)(xing)(xing),這個(ge)判斷(duan)表達式(shi)(shi)的(de)(de)bool值就決定了選(xuan)擇(ze)結構如何選(xuan)擇(ze),循(xun)環(huan)(huan)結構如何循(xun)環(huan)(huan);

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

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

{

代碼段1

}

else

{

代碼段2

}

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

{

代碼段1

}

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

{          // 開頭的if和結(jie)尾(wei)的else都只能有(you)一(yi)個,但是中(zhong)間的else if可以有(you)好多個

代碼段2

}

else

{

代碼段3

}

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

C 語言的編程中 ‘//’ 的含義(yi)是(shi)注釋的意思(si)。

三、選擇結構--switch

1.使(shi)用格式

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

* 舉例

switch case:引入(ru)關鍵字:switch  case  break  default

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

{           // switch case語句(ju)執行時,會用該變(bian)量的值(zhi)依次與各個(ge)case后的常(chang)數(shu)去對比,試(shi)圖找(zhao)到第一個(ge)匹配(pei)項,找(zhao)到匹配(pei)的項目后,

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

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

break;

case 常數(shu)2:

代碼段2;

break;

……

default:

代碼段n;

break;

}

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

這個就(jiu)是switch case語(yu)句的選擇語(yu)句。

注意:

第(di)一(yi), case中(zhong)必(bi)須(xu)是常數,而且必(bi)須(xu)是整(zheng)形(xing);

第二, 一(yi)般來(lai)說,每個case中代碼段(duan)后都(dou)必須有一(yi)個break;

第三(san),case之后一般都會有default,雖然語(yu)法(fa)上允許沒有default,但(dan)是建議寫(xie)代碼(ma)時(shi)一定要寫(xie)。

關于(yu)兩種(zhong)的(de)比(bi)(bi)較(jiao)(jiao):if else和switch case的(de)區別:if else適(shi)合(he)對比(bi)(bi)條(tiao)(tiao)件(jian)較(jiao)(jiao)復(fu)雜(za),但是分(fen)支比(bi)(bi)較(jiao)(jiao)少的(de)情況,switch case適(shi)合(he)那種(zhong)對比(bi)(bi)條(tiao)(tiao)件(jian)簡單,但是分(fen)支較(jiao)(jiao)多的(de)情況。通常的(de)做法是:在適(shi)合(he)使(shi)用(yong)switch case的(de)情況下(xia)會優先(xian)使(shi)用(yong)switch case,如果(guo)不適(shi)合(he)則使(shi)用(yong)if else。這一點根據自身情況,選擇(ze)合(he)適(shi)的(de)方(fang)法使(shi)用(yong)。

2.if和switch的比較(jiao)

* 很(hen)多情況(kuang)下可以(yi)互換

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

四、循環結構

1) 循環機構--for

(1) for:

for (循(xun)(xun)環控制變量初始(shi)化; 循(xun)(xun)環終止(zhi)條件(jian); 循(xun)(xun)環控制變量增(zeng)量)

{

循環體

}

#include <stdio.h>

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;

}

循(xun)環執行步驟:

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

第(di)二, 執行循(xun)環終(zhong)止條件,如(ru)果判斷結(jie)果為(wei)真,則(ze)進(jin)入第(di)三步;如(ru)果為(wei)假則(ze)循(xun)環終(zhong)止并退出;

第(di)三,執行循(xun)環體;

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

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

2)循環結構--while

特點

*只有滿足條(tiao)件(jian)是才會執(zhi)行循環(huan)體(ti)

*特別注意(yi)是否進(jin)入了死循環

(2) while:

循環控(kong)制變量初始化

while(循環終止條件)

{

循環體

循環控制變(bian)量增量

}

#include <stdio.h>

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;

}

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

特點

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

*特別注意是否(fou)進入(ru)了死循環

3) 循環結構--do while

1.特點

* 一定會執(zhi)行一次循環體

2.使用

*對比(bi)while的使用

(3) do while:

循環控制變量(liang)初始化

do

{

循環體

循(xun)環控制(zhi)變量增量

}while (循環(huan)終(zhong)止條件);

#include< stdio.h>

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;

}

循(xun)環(huan)(huan)執(zhi)行(xing)(xing)步驟:第一,先進行(xing)(xing)循(xun)環(huan)(huan)控制(zhi)(zhi)變(bian)量(liang)初始化(在do while之前);第二(er)(er),執(zhi)行(xing)(xing)循(xun)環(huan)(huan)體;第三,執(zhi)行(xing)(xing)循(xun)環(huan)(huan)控制(zhi)(zhi)變(bian)量(liang)增量(liang);第四,判斷循(xun)環(huan)(huan)終(zhong)止條件(jian),如果(guo)(guo)判斷結果(guo)(guo)為真,則(ze)返回第二(er)(er)步;如果(guo)(guo)為假則(ze)直接退(tui)出循(xun)環(huan)(huan);

上(shang)面關于(yu)循環(huan)(huan)的(de)例(li)子都是(shi)一(yi)樣(yang)的(de),但(dan)需要(yao)學(xue)會(hui)比較內部(bu)的(de)區別。不管(guan)哪種(zhong)循環(huan)(huan)結構,都不能缺(que)少(shao)循環(huan)(huan)控(kong)制(zhi)條件(jian)(jian)初(chu)始化,終(zhong)止條件(jian)(jian),循環(huan)(huan)控(kong)制(zhi)變量增量,循環(huan)(huan)體(ti)這四部(bu)分;while循環(huan)(huan)是(shi)先(xian)判斷后執行,do while循環(huan)(huan)是(shi)先(xian)執行后判斷,等循環(huan)(huan)一(yi)次之后,其(qi)實都是(shi)一(yi)樣(yang)的(de)。

補充:

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

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

3> while循環(huan)和(he)for循環(huan)的比(bi)較(jiao)

* 可以互換

* for循(xun)環(huan)的(de)變量(liang)可以及時回收

上一篇:Linux getopt函數詳解

下一篇:搭建Linux C語言開發環境

熱點文(wen)章推薦
華清(qing)學員就業榜單
高薪學員(yuan)經驗分(fen)享
熱點新(xin)聞推(tui)薦
前臺(tai)專線:010-82525158 企業(ye)培(pei)訓洽談專線:010-82525379 院校(xiao)合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部