C#中條件式我們常用&或&&來確認條件是否全部符合規範,而用|或||來確認條件是否部分符合規範

那為什麼又要有&和&&呢?我們用例子來說明

int myAge = 12;
string bloodType = "O";
if(myAge == 12 & bloodType == "O")
{
    Console.WriteLine("do something");
}

上面的例子只有一個&,所以會先檢查myAge是不是等於12,再檢查bloodType是不是等於O.

那今天我們改一下例子

int myAge = 13;
string bloodType = "O";
if(myAge == 12 & bloodType == "O")
{
    Console.WriteLine("do something");
}

它一樣會先檢查myAge是不是等於12,再檢查bloodType是不是等於O.

但這時你會有個疑問,&不是二個條件式都要為真時才符合嗎,那第一個myAge就不符合了,何必浪費時間去檢查第二個條件呢??

所以才會有&&的出現定

int myAge = 13;
string bloodType = "O";
if(myAge == 12 && bloodType == "O")
{
    Console.WriteLine("do something");
}

改成用&&後,當確認myAge=12時,發現條件不合,就直接跳開了,不會去檢查 bloodType == "O"

這樣程式執行就比較有效率,所以要注意的是,我們通常會把常變動或者重要的條件擺在比較的第一個.

而|和||的差異,其實就&和&&是相同的

int myAge = 13;
string bloodType = "A";
if(myAge == 13 || bloodType == "O")
{
    Console.WriteLine("do something");
}

| 及||是二者中有一為真就符合條件,像上例我們使用||就表示會先檢查myAge == 13

這樣就馬上符合條件了,所以它就不會去檢查bloodType == "O",而是直接執行後續的處理了.

所以 | 是將所有條件都比對後才決定怎麼做,而 || 是只要符合的條件就直接做,後續的條件就不比對了.

是比較有效率的.

arrow
arrow
    創作者介紹
    創作者 痞客興 的頭像
    痞客興

    痞客興的部落格

    痞客興 發表在 痞客邦 留言(0) 人氣()