前往
大廳
主題

Untiy C# | if 判斷式及可讀性維護

瓶裝雪 | 2023-07-26 19:00:09 | 巴幣 6 | 人氣 191

一、前言
  這篇文章將會講述 if 判斷式的簡寫與可讀性維護。

二、if 判斷式
  這是一個學習程式語言的必經之路,也是許多條件與判斷的核心邏輯。

1. 整體架構

  if(true)
        {
            //Do Something.
        }

  if 判斷式式相對比較容易理解的邏輯判斷,也是邏輯判斷的基礎,他的架構並不複雜,總共有四行,第一行是判斷式本身,第二與第四行是程式碼區塊、第三行可以擴增,並且執行核心運算。

  它的第二種排版為下:
  if(true){
            //Do Something.
        }

  這也是很多程式員在爭執的程式排版方式。

2. 判斷部分
  「if(true)」的部分,裡面就是一個布林值,只要為 ture 就可以執行之後程式碼區塊的內容,布林值的類型有許多種函式都能辦到,譬如:

a: A==B
b: Component.CompareTag("Obj")
c: Physics.Raycast(...)
d: bool
  以上內容都可以放置在 if 判斷式裡面。

3. else
  正常來說,如果判斷式為 true 才會觸發某段程式碼,而有些時候我們會希望沒有 true 的時候,也就是判斷式為 false 會觸發另一段程式碼。

  if(true){
            //Do Something.
        } else
        {
            //Do Something.
        }

三、bool 的簡潔寫法
  那問題來了,他們看起來非常的複雜,也就是說程式碼行數太多了,我們有一些方式可減少程式碼的長度。

1. 單行陳述式
  如果程式碼只需要執行一個函式或改變一個變數,那就可以用一個比較簡潔的寫法,如下所示:
  if(true) Do Something;

2. 是否判斷
  如果判斷式最後會輸出一個布林值為 true 或 false 的話,有一個較為簡單的寫法可以使用,如下所示:

bool isHit;
isHit = if(Physics.Raycast(...));

3. 三元運算子 (Ternary Operator)
  如果是判斷是否,並且分別對同一個變數賦予兩個不同的值,那就可以考慮三元運算子,不過要注意的是,三元運算子的可讀性比較差,因此要把命名規則寫好,也可以選擇註解或把程式碼封裝好。

int result;
bool condition;
result = (condition) ? value1 : value2;

4. 例外-null 值判斷
  在 Unity 程式撰寫中,雖然有上述的幾種簡寫方式,但是在 null 值得維持可讀性上面,卻是比較長的程式碼會比較好讀。

if ( A != null)
{
  //Do Something.
}

  上述的程式馬反而會比有縮減的程式碼來得好讀:

if ( A != null)
 //Do Something.
四、後記
  這篇文章原本是想用來講述雷射是一種布林值,不過後面發現都在講述 if 判斷式本身,所以這篇文章就被獨立出來了。

送禮物贊助創作者 !
0
留言

創作回應

更多創作