複製鏈接
請複製以下鏈接發送給好友

分支結構

鎖定
對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關係比較等條件判斷的計算,設計這類程序時往往都要先繪製其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。
中文名
分支結構
類    型
結構
學    科
計算機
包    括
4
同義詞
選擇結構

分支結構基本類型

學習分支結構不要被分支嵌套所迷惑,只要正確繪製出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。

分支結構單一分支體

if(條件)
{
分支體
}

分支結構雙分支體

if(條件)
{分支1}
else
{分支2}
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi\n”r,i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
}

分支結構嵌套分支語句

其語句格式為:
if(條件1) {分支1};
else if(條件2) {分支2}
else if(條件3) {分支3}
……
else if(條件n) {分支n}
else {分支n+1}
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套後,語句結構變得非常複雜,對於程序的閲讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。

分支結構switch開關語句

該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接着執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。

分支結構結構

分支結構其實就是選擇結構,程序的三大控制結構為:順序結構循環結構、選擇結構。
選擇結構
用於判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控制程序的流程。 使用選擇結構語句時,要用條件表達式來描述條件 示例:If x = 5 Then y = x + 1 If a>1 And b<>0 Then x = 1 當然各種程序對選擇結構語法不一樣。例如: C語言的選擇結構為: if(條件表達式1) {語句塊1;} else if(條件表達式2) {語句塊2;} else if(條件表達式3) {語句塊3;} . . . else {語句塊n;} VB 中的選擇結構為: If(條件表達式1) then 語句塊1 ElseIf(條件表達式2) then 語句塊2 . . . Else 語句塊n End If C語言中switch 語句為: switch(變量或表達式) { case 常量表達式1: 語句塊1; break; case 常量表達式2: 語句塊2; break; ……. case 常量表達式n: 語句塊n; break; default:語句塊n+1 break; } VB語言中Select Case(相當於C的switch)語句為: Select Case 變量或表達式 Case 表達式列表1 語句塊1 Case 常量表達式2 語句塊2 ……. Case 常量表達式n: 語句塊n [Case Else 語句塊n+1] End Select } 條件表達式可以分為兩類: 關係表達式邏輯表達式 條件表達式的取值為邏輯值(也稱布爾值): 真(True) 和假(False) C用非0表示真,0表示假 以下的説明以C為依據: 1-關係運算符和關係表達式 關係運算是比較簡單的一種邏輯運算, 其優先次序為: < 、 <= 、 > 、 >= 優先級相同,高 = = 、 != 優先級相同,低 用關係運算符連接起來的式子稱為關係表達式。關係表達式的值是真/假。C語言中,非零即為真,零代表假 a=3,b=5,則關係表達式 a>b的值是假,而a<b的值是真 關係運算符 關係運算符是雙目運算符,在雙目運算符中,它的優先級比賦值運算符要高: 算術運算符 高 關係運算符 賦值運算符 低 比如,a=1,b=3 a=b>5 即 a=(b>5),a+b>5 即 (a+b)>5 而a>b=5則是錯誤的表達式,因為它的實際含義是:(a>b)=5, C語言不允許對錶達式賦值! 2-邏輯運算符和邏輯表達式 C語言提供了3個邏輯運算符,其中一個是單目運算符 邏輯表達式也只有兩個值:真和假