接續昨天,這裡是成績分級題目進化史ㄉ下半部(?
前面是基礎款if else,這篇會有 switch (後來發現switch就夠一篇ㄌ)
那就開始叭
3.switch
重複一下前幾天ㄉ文:switch就是從if else的無限二分法變成一次就分類好
不過我真的動手寫的時候發現,題目給的示範並不是做成績分級,而是當輸入"A",會輸出"成績優良"
也就是說,switch似乎是限定於一個輸入對應到一個輸出,沒辦法像if else 一樣給出如(a<=80)這樣的條件範圍。
因此為了達成成績分級的目標,我改變成以下寫法:
string g = Console.ReadLine();
switch (g)
{
case "90":
Console.WriteLine("A");
break;
case "80":
Console.WriteLine("B");
break;
case "70":
Console.WriteLine("C");
break;
case "60":
Console.WriteLine("D");
break;
default:
Console.WriteLine("F");
break;
}
也就是只能取每個級分的一個數字做為分級標準。
那如果介面做好,例如先輸出"只能無條件捨去後填入0結尾的整數"這樣當然還是可以做分級,但與前面的if else 相比就不太方便了。
我們可以動點手腳處理掉這個部分:
int g = int.Parse(Console.ReadLine());
int t = g % 10;
g -= t;
string i = g.ToString();
switch (i)
{
case "90":
Console.WriteLine("A");
break;
...
default:
Console.WriteLine("F");
break;
}
也就是我們直接幫輸入值去尾,就可以坐到前面if else一樣的效果。
不過老實說,這樣還不如直接用if else就好QQ
註:我自己也還在摸索中,如果有大大看到錯的地方歡迎指正!超級歡迎大家教我(X