為什麼使用if else分支語句不好

2021-06-02 12:40:09 字數 599 閱讀 9613

為什麼使用if else分支語句不好?不是說不能用,而是說在業務邏輯層等比較抽象的地方使用冗長的if else不好。

首先能想到的一點就是**違反了 open close原則(open to extesion & close to modification)。每一次有新的邏輯變動,都需要了解原有**的邏輯,並在適當的地方增加分支語句。這要求程式設計師對編寫非常完整的邏輯。

打個比方,在乙個繼承譜系中,有乙個基類,很多子類以及使用這個譜系的乙個函式fun。如果在fun中用if else來找到合適的子類,那麼必須考慮到所有的子類。尤其在增加子類的時候,子類的實現是完成了,但是對這個fun的修改遺漏了,bug就在那裡了。與此相反,在這個fun中利用oo的多型,那麼沒有一堆if else了,程式語言自動幫你找到合適的子類實現。不僅省力,而且不容易引入bug。

其次(先留著,以後想到再補加)

那麼有什麼好的替換方案嗎?

使用oo,用物件的思維來看待!擺脫寫程式時順序執行的思考方式,模組化的編寫**;**的執行順序由編譯期或者執行時來決定,而不是編寫**的時候。

除此之外,還可以使用一些design pattern來避免if else這類的硬編碼。「你還在用if else嗎?」 ( 是片不錯的參考。

C語言分支結構語句if else語句

if else語句中,if後面的 是不需要加分號的,同樣的,else後面也不需要加分號 的後面也不需要加分號 我們知道,當有乙個條件時,只有兩種情況,要麼是符合條件,要麼是不符合。但是當我們有不止乙個條件時,那麼可以用多重if else語句。注意 1.當某一條件為真的時候,則不會向下執行該分支結構的...

if else語句使用

if else的使用場景 當條件成立完成a操作,不成立完成b操作 if else語句的語法格式 if 要判斷的條件 條件滿足,完成a操作 else 條件不滿足,完成b操作 age int input 請輸入您的年齡 input函式返回的是字串資料 print age,type age 判斷年齡是否成...

流程控制 if else分支語句

一 if else語句 如果條件成立,就執行在語句體。語法 if 條件 語句體1 語句體2 語句體3 例如 1.if true print ok print 2.age int input 您芳齡幾何 input 您的性別是 if female or age 50 print 你狠符合我的要求 el...