標籤: 暫無標籤

分支結構  順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句

分支結構
  順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關係比較等條件判斷的計算,設計這類程序時往往都要先繪製其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪製的程序執行流程圖。
  學習分支結構不要被分支嵌套所迷惑,只要正確繪製出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
  ①if(條件)
  {
  分支體
  }
  這種分支結構中的分支體可以是一條語句,此時「{}」可以省略,也可以是多條語句即複合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x=0時,方程有兩個實根,否則(b^2-4ac=0)
  {x1=(-b+sqrt(d))/2a;
  x1=(-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};
  elseif(條件2){分支2}
  elseif(條件3){分支3}
  ……
  elseif(條件n){分支n}
  else{分支n+1}
  嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套后,語句結構變得非常複雜,對於程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
  ④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
上一篇[成本控制範圍]    下一篇 [智慧協同]

相關評論

同義詞:暫無同義詞