什麼是過程導向?
過程導向會將解決問題分成一個個步驟,並按照順序執行,包含程式語言中必備的三大要素:條件、迴圈和判斷
假設一個情況:要從一箱書裡找到一本名為「殿堂之路」的書,可以分成以下的步驟
- 有一箱書,和我們要找的書名
- 一本一本拿起來看書名是不要我們要找的
- 如果是的話,就不繼續找;否則,繼續找,直到整箱書都找過一次了
在以上的情況裡,可以列出條件、迴圈和判斷
條件:書名為「殿堂之路」的書
迴圈:一本一本拿起來看書名
判斷:是不是要找的書,符合條件的話,結束迴圈;不符合的話,則繼續下一個迴圈
條件運算式的結果
不論條件的形式為何,判斷結果永遠都是布林值 ( True 或是 False ) ,運算式也可以是關係運算子和邏輯運算子的組合,如下:
( a == b ) && ( a > 0 )
if-else 語法
if-else 為最基本,也是最常使用控制流程程式語句,翻成中文的話意思是說:如果條件運算式為 True ,那麼就執行流程A,否則就執行流程B,語法如下:
if ( 條件運算式 ) { 流程A } else { 流程B }
當然也可以僅使用 if ,而不使用 else ,這樣的話就會變成「如果符合條件就執行,否則不做任何事情」
當流程裡面只有一句語句的時候,前後的大括號是可以省略的,如下:
當流程裡面只有一句語句的時候,前後的大括號是可以省略的,如下:
if ( 條件運算式 ) 流程A else 流程B
如果有多個條件需要判斷的話,可以增加更多的 else if 語法,意思是說:如果符合條件A則執行流程A;否則如果符合條件B,則執行流程B;否則執行流程C,如下:
if ( 條件A ) { 流程A } else if ( 條件B ) { 流程B } else {
流程C }
其實 else if ,就是一個 if-else 後面馬上緊接著一個 if-else 語法,而需要注意的是,程式是由上往下一行一行執行的,一但有一個 if 語法條件為 True ,那麼後續其他的 if-else 就不會被執行了,如下:
if ( a > 0 ) { console.log( ' a 是正數' ); } else if ( a > 100 ) { console.log( ' a 大於 100' ); } else { console.log( ' a 小於等於 0 ' ); }
當今天 a 為 150 的時候,由於第一個「 a > 0 」為 True, 因此得到的結果永遠都會是 「a 是正數」,基於這個原理,可以得到一個最佳化技巧:在有互斥的條件判斷下,可以將最有可能為真的 if 選項提到最前面去,用以提高程式效率
沒有留言:
張貼留言