c語言是結(jié)構(gòu)化的程序設計語言,其形式主要有三種——(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設公司、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務渾南,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:189820811081)
順序結(jié)構(gòu)是按照代碼的順序,從上往下從前往后依次進行執(zhí)行的
順序結(jié)構(gòu)的特點——1.自上而下 2. 依次執(zhí)行 3. 沒有分支
int main()
{
printf("1\n");? ? //1
printf("2\n");? ? //2
printf("3\n");? ? //3
printf("4\n");? ? //4
printf("5\n");? ? //5
return 0;
}
一段簡單的printf代碼,其程序運行結(jié)果如下
程序按順序1、2、3、4、5依次執(zhí)行,依次分別打印出的“ ”里的語句。
2)選擇結(jié)構(gòu)
選擇結(jié)構(gòu)兩大類——1*、if else語句
—— 2*、switch -case 語句
a.if else語句
函數(shù)使用--
if(函數(shù)表達式)
{
執(zhí)行語句;
}
else if(函數(shù)表達式)
{
執(zhí)行語句;
}
else
{
執(zhí)行語句;
}
int main()
{
? ? int i = 10;
? ? if( i >= 10 )
? ? ? ? printf("666\n");? ? //(1)
? ? else if( i<= 0)
? ? ? ? {? ? ? ? ? ? ? ? ? ? //(2)
? ? ? ? ? ? i++;
? ? ? ? ? ? printf("%d\n",i);
? ? ? ? }
? ? else
? ? ? ? printf("7777\n");? ? //(3)
? ? if( i >= 0)
? ? ? ? printf("我愛c語言\n");?//(4)
? ? printf("hahahaha\n");? ? //(5)
? ? return 0;
}
注意:這一段代碼里一共有五個printf函數(shù),而且{}的布置也有不同
程序執(zhí)行結(jié)果如上,最后只打印了執(zhí)行了3條printf函數(shù),現(xiàn)在來簡單講解一下該段代碼實際上在編譯器中是如何運行的
當程序執(zhí)行時,函數(shù)從主函數(shù)進入,為常量i分配了一個int類型的空間并賦值為10,下一步就是進入if語句分支,此時i = 10 滿足(i >= 10)進入下方的執(zhí)行語句,打印出“666”,下一步程序指向下一個if(不是else 后面的 if),即直接來到第四個printf的判斷條件——(i >= 0),此時i = 10 >0 滿足條件判斷進入打印“我愛c語言”,由于最后一個printf函數(shù)執(zhí)行沒有條件判斷,因此無論如何,只要程序不在前面的語句中斷,程序都會打印出“hahahahaha\n”。
|在這里補充上if分支的規(guī)則
.else優(yōu)先與近的if結(jié)合
if后的語句只執(zhí)行一條,如果要執(zhí)行多條語句,需要花括號{}
當一個程序有多個if語句時,執(zhí)行完一個if后不干涉程序進入下一個if,只要滿足條件判斷就可以執(zhí)行語句
if后的else if --當if中條件判斷滿足時,不進入與之關聯(lián)的else if 和else 即使符合條件判斷也不進入。
b.switch case語句
使用方法:
switch(條件參數(shù))
{
case _:
case _:
執(zhí)行語句;
break;
default:
執(zhí)行語句;
break;
}
e.g
int day = 5;
scanf("%d",&day);
switch(day)
{
? ? case 1:
? ? case 2:
? ? case 3:
? ? case 4:
? ? case 5:
? ? ? ? printf("工作日\n");
break;
? ? case 6:
? ? case 7:
? ? ? ? printf("周末\n");
break;
? ? default:
? ? ? ? printf("輸入錯誤\n");
}
以上的代碼用于在用戶輸入數(shù)字1234567對應的日期判斷每個星期中的工作日或者周末
break的用法是在循環(huán)或者switch分支中直接結(jié)束當前結(jié)構(gòu)語句(循環(huán)或者分支),上面的例題中如果沒有break,那么在執(zhí)行完”工作日“打印后程序不會結(jié)束,而是進入下一步執(zhí)行語句。
3)循環(huán)結(jié)構(gòu)
循環(huán)有三大類a.while 循環(huán)
b.do while 循環(huán)
c.for循環(huán)
a*) while 循環(huán)注意事項和使用
while (判斷條件)
{
執(zhí)行語句;
必須要有限制條件;
}
int i = 10;
while(i)
{
? ? printf("%d",i);
? ? i--;
}
最后程序執(zhí)行如下
代碼執(zhí)行分析:
由main函數(shù)進入后為變量i分配一塊空間并且賦值為10
while()內(nèi)的循環(huán)判斷條件規(guī)則是:0為假,非零為真,即結(jié)果不為0時符合條件判斷就可進入執(zhí)行語句
在執(zhí)行的語句中遵循順序結(jié)構(gòu),先printf后i自減,經(jīng)過了十次循環(huán)后i=0作為判斷條件,不進入之后的執(zhí)行語句,因此執(zhí)行過程在while循環(huán)中往往比判斷少一輪。
b*) do while循環(huán)
使用:
do
{
循環(huán)體;
必須有限制條件;
}while(條件判斷);
當程序進入do while循環(huán)后,先進入一次循環(huán)體,再進行條件判斷,當判斷結(jié)果為真時,進入下一次循環(huán),當結(jié)果為假時,退出循環(huán)結(jié)構(gòu)。
在循環(huán)體中,除了當前的執(zhí)行語句之外,必須要有能限制while循環(huán)次數(shù)的語句來防止死循環(huán),一個循環(huán)體中可以沒有其它的執(zhí)行條件,但是必須要有限制條件;
當循環(huán)體中程序進行到break,則程序會直接終止在循環(huán)結(jié)構(gòu)的進程,從而進行下一語句,值得注意的是,break只能跳出一層循環(huán)/分支結(jié)構(gòu),在多組循環(huán)或者分支嵌套的情況下往往采用多個break來結(jié)束程序在循環(huán)中的進程。
當循環(huán)體中的程序進行到continue,程序會直接終止該次循環(huán)結(jié)構(gòu)的進程,與break不同的是:continue執(zhí)行后程序下一步執(zhí)行的是下一次的循環(huán)體語句,而不是循環(huán)結(jié)構(gòu)后的程序。
c*) for循環(huán)
使用:
for( 初始條件 ;限制條件 ;控制循環(huán)變量 )
{
循環(huán)體;
}
e.g打印出0 - 9的十個數(shù)字
for(i = 0 ; i< 10 ; i++ )
{
? ? printf("%d ",i);
}
實際上如果底層邏輯沒有太大區(qū)別的時候,for循環(huán)和while循環(huán)可以相互轉(zhuǎn)換上面的for循環(huán)還可以這樣寫
i = 0;
while(i< 10)
{
? ? printf("%d ",i);
? ? i++;
}
兩者執(zhí)行的效果是完全相同的,只是在一些特定的場合,人們更傾向于特定的寫法,像是while常被用于做未知循環(huán)次數(shù)的循環(huán),for循環(huán)更多被應用于已知循環(huán)次數(shù)的循環(huán)。
值得注意的是,不管是那種循環(huán),其限制循環(huán)次數(shù)的條件是一個合格的循環(huán)所必備的,而且循環(huán)限制條件可以不僅限于一條,在有需求的環(huán)境下,人們可以創(chuàng)建多個變量來控制循環(huán)次數(shù)。
int i = 0,j = 10;
for( ;i >3 && j % 2 != 0;i++,j++)
{
? ? ;
}
如上,i 和 j都是控制循環(huán)次數(shù)的變量;
在for循環(huán)的設計中,括號中的條件可以省略不寫,但必要在循環(huán)體中體現(xiàn),雖然這樣的代碼c語言支持讀寫,但為了避免程序出現(xiàn)錯誤和程序難以被看懂,應該盡量減少這樣的寫法。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧