2023-07-26|閱讀時間 ‧ 約 4 分鐘

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

一、前言

  這篇文章將會講述 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 判斷式本身,所以這篇文章就被獨立出來了。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.