此為個人學習筆記,如果有理解錯誤或是相關資訊歡迎留言告知與分享,謝謝!
if...else
if(條件判斷)
{
條件判斷 == true
}
else
{
條件判斷 == false
}
e.g.,
如果有個人很膚淺,他說: 跟我在一起的對象一定要身高超過180(包含180)
if( heOrShe >= 180)
{
Console.WriteLine("在一起");
}
else
{
Console.WriteLine("Bye~");
}
若沒有寫else?
if( heOrShe >= 180)
{
Console.WriteLine("在一起");
}
Console.WriteLine("Bye~");
-
heOrShe = 181時
印出結果
在一起
Bye~
-
heOrShe = 170時
印出結果
Bye~
為什麼 heOrShe = 181時兩個結果都跑出來了,WHY?
因為若沒加else
對於程式來說"條件判斷 == false"的情況並沒有相關可執行的程式碼
對他來說 Console.WriteLine("Bye~");並不是 "條件判斷 == false "時的狀況
而是if else 後,接下來的程式碼
if( heOrShe >= 180)
{
條件判斷 == true
}
else
{
}
Console.WriteLine("Bye~"); (接下去的程式碼)
if....else if....else
if(條件判斷)
{
if的條件判斷 == true
跑此區塊程式碼
}
else if(條件判斷)
{
if的條件判斷 == false && else if的條件判斷 == true
跑此區塊程式碼
(else if 能寫多個)
}
else
{
以上條件判斷皆 == false
跑此區塊程式碼
}
-
條件判斷的優先順序:if > 第一個else if > .... > 最後一個else if > else
e.g.,
如果有一個人說:另外一半身高最理想是180, 沒180的話有170也是蠻理想的, 就算沒有170,至少一定要有160!!
if( heOrShe >= 180)
{
Console.WriteLine("你是真愛~~");
}
else if (heOrShe >= 170)
{
Console.WriteLine("你是優質好菜~");
}
else if (heOrShe >= 160)
{
Console.WriteLine("你,我可以");
}
else
{
Console.WriteLine("bye~");
}
switch
switch(要對比的變數)
{
//可以寫很多個case
case 選項A:
變數 == 選項A時
跑此區塊程式碼
// 跑到break;時,則跳出switch
break;
case 選項B:
變數 == 選項B時
跑此區塊程式碼
break;
//default不一定要寫
default:
若都不符合以上case選項,則跑此區塊程式碼
break;
}
e.g.,
string food = "想查詢的食物名";
switch(food)
{
case "鮭魚生魚片":
Console.WriteLine("一盒100元");
break;
case "半筋半肉牛肉麵":
Console.WriteLine("一碗130元");
break;
case "霸王牛排":
Console.WriteLine("一客280元");
break;
default:
Console.WriteLine("這間店沒有這個選項喔~");
break;
}
Console.WriteLine("跳出switch囉");
-
Yui想知道鮭魚生魚片的價格(food = "鮭魚生魚片")
印出結果
一盒100元
-
Albert想知道霸王牛排的價格(food = "霸王牛排")
印出結果
一客280元
-
Samon(我家狗狗)想知道狗飼料的價格(food = "狗飼料")
印出結果
這間店沒有這個選項喔~
若沒有寫default??
如同
default:
//沒寫任何東西
程式會繼續跑接下來的程式碼
則
-
Samon(我家狗狗)想知道狗飼料的價格(food = "狗飼料")
印出結果
跳出switch囉~
若沒有寫break??
-
若該case內程式碼為空,則沒關係
且若該case的選項 == 變數
則程式碼會執行下一個case直到遇到break;
可用地方:若鮭魚生魚片與半筋半肉牛肉麵皆是一碗130元時
那麼可如下列程式 case "鮭魚生魚片":內不寫程式,
擇選鮭魚生魚片或是半筋半肉麵
都會跑到 Console.WriteLine("一碗130元");這行程式碼
switch(food)
{
case "鮭魚生魚片":
//空
case "半筋半肉牛肉麵":
Console.WriteLine("一碗130元");
break;
case "霸王牛排":
Console.WriteLine("一客280元");
default:
Console.WriteLine("這間店沒有這個選項喔~");
break;
}
-
Yui想知道鮭魚生魚片的價格(food = "鮭魚生魚片")
印出結果
一碗130元
2. 若沒有寫break的case不為空
switch(food)
{
case "鮭魚生魚片":
Console.WriteLine("一盒100元");
case "半筋半肉牛肉麵":
Console.WriteLine("一碗130元");
case "霸王牛排":
Console.WriteLine("一客280元");
}
則會直接出現錯誤訊息,如下圖
if...else與switch 差異
-
switch的效能較好(?)
-
switch的程式碼比較清楚乾淨(?)