布林值 (bool):bool 為 boolean 的別名。是用來存放 true (有)、false (無) 的變數,所以佔的記憶體位置很小,只佔 8 位元 (bit)。
在別的程式語言裡面,int 或 string 是可以轉換為 bool 的,例如:
C++:只要數值非零,皆為 true。(C++ 不熟...其他型態沒試過)
int i = 123; => true int i = 1; => true int i = 0; => false
PHP:只要數值非零或空 (null),皆為 true。
$i = 123; => true $i = 1; => true $s = "hi!"; => true $s = ""; => false $i = 0; => false
但是 C# 不行,例如:
int i = 123;
if ( i ) => 這是錯誤的, 這邊無法判斷 true 或 false,且編譯過不了
{
}
if ( i != 0 ) => 這才是正確做法, 使用者必須自己下判斷,去判斷是否為 0
{
}
------- 小技巧 -------
在程式中經常會用到很多的判斷,例如遊戲中要打副本時,需要去判斷玩家體力是否足夠、等級是否足夠、金錢是否足夠時,會這樣去判斷:
// 這邊會去檢查玩家的體力、等級、金錢是否足夠,條件滿足才可進行副本。
if ( (player.energy > 0) && (player.lv >= 10) && (player.money >= 100) )
{
// 進入副本......
}
// 不過也有人會用排版的方式,去提高可讀性。
if ( (player.energy > 0) &&
(player.lv >= 10) &&
(player.money >= 100) )
{
// 進入副本......
}
這裡其實就可以利用 bool 變數,去做處理,作法如下:
// 檢查體力是否足夠。
bool checkEnergy = (player.energy > 0);
// 檢查等級是否足夠。
bool checkLV = (player.lv >= 10);
// 檢查金錢是否足夠。
bool checkMoney = (player.money >= 100);
if ( checkEnergy && checkLV && checkMoney )
{
// 進入副本......
}
如此一來,判斷式就可以清楚又明瞭了!就算不下註解,光看變數名稱,也可以知道該判斷式的用處是什麼了!
文章標籤
全站熱搜
