項軍
摘 要:如今編程的熱門語言之一就是C語言,掌握C語言首先要了解它的基本結(jié)構(gòu)。C語言編程有三種基本結(jié)構(gòu),本文將圍繞這三種基本結(jié)構(gòu)進(jìn)行介紹。
關(guān)鍵詞:C語言;編程;三種基本結(jié)構(gòu)
引言
當(dāng)代社會發(fā)展離不開網(wǎng)絡(luò)技術(shù)的推動,計算機(jī)程序在我們的生活、工作和學(xué)習(xí)中發(fā)揮了重要作用。而在計算機(jī)程序的編寫語言中,C語言是最為重要和基礎(chǔ)的部分,它的基本結(jié)構(gòu)主要包括三種,并不十分復(fù)雜,了解其基本結(jié)構(gòu)才能掌握C語言。
1.順序結(jié)構(gòu)
C語言結(jié)構(gòu)中,最簡單的結(jié)構(gòu)就是順序結(jié)構(gòu),其它兩種基本結(jié)構(gòu)都是以順序結(jié)構(gòu)為基礎(chǔ)的,它是所有程序中不能缺少的關(guān)鍵一步。以下舉例來說明順序結(jié)構(gòu)作用流程。
#include
void main()
{
int a,b,c;
a=1;b=2;
c=a+b;
printf("1+2=%d\n",c);
}
以上主函數(shù)中包含了五個基本語句,由系統(tǒng)自上而下按照順序結(jié)構(gòu)編譯,這就是C語言的順序結(jié)構(gòu)體現(xiàn)。
2.選擇結(jié)構(gòu)
選擇結(jié)構(gòu)與順序結(jié)構(gòu)相比稍顯復(fù)雜,增加了篩選的過程,一些特定的語句執(zhí)行只會在滿足部分條件的基礎(chǔ)上進(jìn)行。If和switch語句是選擇結(jié)構(gòu)中比較常見的,下面說一說這兩種語句的結(jié)構(gòu)和用法。
2.1 if 語句
if 語句是 C 語言中運用最為廣泛的引導(dǎo)選擇結(jié)構(gòu)的語句,也是選擇結(jié)構(gòu)最基礎(chǔ)的語句。一切其他的選擇結(jié)構(gòu)編寫方式從本質(zhì)上都可以用 if 語句的形式來進(jìn)行改寫。if 語句的基本用法如下:
if(條件)語句 1
或
if(條件){語句 1;語句 2},
在上述語句中,if 充當(dāng)一個判定的作用,一般情況下“條件”是一個表達(dá)式,復(fù)雜的時候可能出現(xiàn)復(fù)合表達(dá)式,在循環(huán)結(jié)構(gòu)中,條件還有可能是布爾值 0 或 1(在循環(huán)結(jié)構(gòu)中會進(jìn)一步提及)。如果條件被判定為真(表達(dá)式正確),那么 if 后的語句就會相應(yīng)地被執(zhí)行。如果需要執(zhí)行的語句不止一個,需要用花括號將所有需要執(zhí)行的語句括起 [1]。
2.2 switch 語句
在工作和生活中,經(jīng)常需要對綜合性的信息進(jìn)行分類,這就需要運用到選擇結(jié)構(gòu)。Switch語句與if語句不同的是,它不單單只有兩個選項,而是由多個選項。
這里的表達(dá)式不僅僅可以指一個代數(shù)式,也可以是一個變量。執(zhí)行 switch 語句的時候,我們會將表達(dá)式所得的結(jié)果(必須保證結(jié)果為整數(shù)類型(包括字符類型))與 case 后的常量逐一比較并執(zhí)行代數(shù)值相同的 case 后所附加的語句。如果將所有 case后的值全部核對完成沒有發(fā)現(xiàn)匹配量,則執(zhí)行 default 語句后所附加的語句。此時 default 后通常會附加錯誤提示 [2]。
3.循環(huán)結(jié)構(gòu)
計算機(jī)的運算速度是人腦永遠(yuǎn)無法企及的,它的代數(shù)運算能力極強,當(dāng)我們運用順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)不斷重復(fù)同樣的工作時,程序會顯得冗長,這時候就需要利用循環(huán)結(jié)構(gòu)將部分語句進(jìn)行重復(fù)利用,使程序變得高效。當(dāng)然,循環(huán)也有一定的條件,只有在滿足條件時才會執(zhí)行循環(huán)。簡而言之,結(jié)構(gòu)循環(huán)就是反復(fù)使用選擇性的結(jié)構(gòu)。簡單常見的循環(huán)結(jié)構(gòu)一般有 while、do……while、for等。
3.1 while 與 do while
while和do while是兩種最基本的循環(huán)模式。While循環(huán)下,計算機(jī)會先進(jìn)行條件判定,如果滿足循環(huán)條件則執(zhí)行循環(huán),不滿足則不執(zhí)行。而do while循環(huán)下,計算機(jī)會先進(jìn)行一次循環(huán),再去判斷條件,也就是說至少會有一次循環(huán)。
計算機(jī)是自上而下閱讀語句的,使用while語句時,語句的后面緊跟的是條件,計算機(jī)會立即判定條件,如果條件成立,則執(zhí)行循環(huán),反之則跳過循環(huán)。而在使用do while語句時,計算機(jī)會先執(zhí)行循環(huán),再去判斷條件成立與否。比如下面這樣一個程序:
#include
void main()
{
int a=10,b=10,c=1,d=1;
while(a<10)
a+=3;
printf("%d\n",a);
do
b+=3;
while(b<10);
printf(“%d\n”,b);? ? ? ? // 比較 while 與 do while 在首次循環(huán)的差異
while(c<10)
c+=3;
printf("%d\n",c);
do
d+=3;
while(d<10);
printf(“%d\n”,d);? ? ?// 比較 while 與 do while 在一般循環(huán)上的差異
}
程序中分別將 while 和 do while 使用了兩次,表示兩種不同的判定情況。程序輸出結(jié)果分別是:10,13,10,10,也就是說,兩者最大的區(qū)別在于是否執(zhí)行第一次循環(huán),在 a 和 b 的操作中,a=10,while 判定條件不成立,跳過循環(huán)體,而 b=10,使用 do 先執(zhí)行了一次循環(huán),然后再判定條件不成立,跳出循環(huán)體(do 相當(dāng)于強制進(jìn)入循環(huán)體)。而對于第一次判定條件均滿足的 c、d,這
兩者的區(qū)別便不明顯。while 與 do while 的使用,要根據(jù)實際情況和算法的不同進(jìn)行合理選擇使用。
3.2 for 循環(huán)
與 while 相比,for 循環(huán)要顯得簡潔得多。使用 for 循環(huán)可以做到簡潔而精確地控制循環(huán)次數(shù),是更常用的循環(huán)方式。除此之外,for 的三個語句塊也給 for 循環(huán)更加廣闊的靈活運用的空間。for 循環(huán)的一般形式如下:
for(表達(dá)式 1;表達(dá)式 2;表達(dá)式 3)語句
其中,表達(dá)式 1 為設(shè)置初始條件,在 for 循環(huán)的初始階段使用一次;表達(dá)式 2 為判定條件,使用的是當(dāng)型循環(huán),在循環(huán)前驗證真假以決定是否執(zhí)行循環(huán)體;表達(dá)式 3 為循環(huán)調(diào)整表達(dá)式,可以看成是語句的一部分。三個語句均可省略。在許多循環(huán)次數(shù)確定的情況中,for 常常被用作循環(huán)變量的控制工具,即for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)[3]。
4.結(jié)語
C語言的強大遠(yuǎn)超我們的想象,也因此具有很強的復(fù)雜性。想要更好的運用C語言,必須先從它的三種基本結(jié)構(gòu)入門,打好基礎(chǔ)。其實,除C語言外的任何一種編程語言都是在以上三種結(jié)構(gòu)的基礎(chǔ)之上組合的,想要做好編程工作,就必須扎實掌握以上內(nèi)容。
參考文獻(xiàn)
[1]張凡.淺談C語言編程的三種基本結(jié)構(gòu)[J].中國科技投資,2019,000(003):190-191,195.
[2]徐曉霞.淺議C語言中循環(huán)結(jié)構(gòu)的教學(xué)方法[J].黑龍江科技信息,2013,000(032):152-152.
[3]辛日華.《C語言程序設(shè)計》中for循環(huán)語句教學(xué)方法的探討[J].佳木斯教育學(xué)院學(xué)報,2013(07):244-245.