我最近在Code Complete中讀到,處理涉及數字的表達式的推薦方式是將它們按照數字順序排列。「數字線」的比較風格
該書有2個例子:
if ((MIN_ELEMENTS <= i) && (i <= MAX_ELEMENTS))
if ((i < MIN_ELEMENTS) || (MAX_ELEMENTS < i))
隨着表示i是最小和最大的元素,和第二個例子是,我落在元件之間的範圍外之間的第一個例子。
我一直在試圖通過它,我不確定它是否只是我的想法,但我認爲它並沒有讓代碼變得更清晰。
例子:
if (m_Health > BOSS_HALF_HEALTH) // The way it was
if (BOSS_HALF_HEALTH <= m_Health) // The "number line" method
難道只是我,還是數線方法似乎不那麼清楚了嗎?你對這種做法有什麼想法?
他提到把常量放在比較的左側與數字行方法相矛盾也很奇怪,但在這裏似乎數字線方法會導致將常量放在左側。
是的,即使有多部分條件,我認爲首先處理「條件元素」而不是常量,因爲這就是人們的想法。 – Anonymous 2009-11-18 01:54:26
沒錯,我不會在任何情況下使用常量的方式,因爲如果我這樣做,編譯器會警告我(當然,它並不總是這樣,但今天是這樣)。我發現使用比較左側的變量讀得更加順暢。 – 2009-11-18 01:56:40
而且,對於不允許在表達式中賦值的理性語言,將常數置於左邊的原始原因甚至不適用。 – 2009-11-18 01:57:27