作者followaymis (abcde)
看板C_Sharp
標題[問題] switch..case
時間Wed Oct 10 13:23:35 2007
謝謝各位高手為我解答....
針對這個程式碼有些許的疑問...
煩請各位高手指點迷津...
int degree, month;
double sum,money;
Console.Write("enter degree:");
degree = Int32.Parse(Console.ReadLine());
Console.Write("enter month:");
month = Convert.ToInt32(Console.ReadLine());
if (month >= 6 && month < 10)
{
switch (degree)
{
case degree < 110: //好像不能直接case < 110
money = 2.1; 顯示為無效的運算式
break;
case degree > 110 && degree <= 330:
money = 2.73;
break;
case degree > 330 && degree <= 500:
money = 3.31;
default:
money = 3.465; //每行都為無法將bool隱涵轉換int
break; 可是我沒有宣告bool型別阿??
而且依開始我也將degree轉型了.....
又要再次麻煩各位了.....感激不盡...
}
}
else
{
switch (degree)
{
case degree <= 110:
money = 2.1;
break;
case degree > 110 && degree <= 330:
money = 2.413;
break;
case degree > 330 && degree <= 500:
money = 2.73;
default:
money = 2.73;
break;
}
}
sum = degree * money;
Console.Write("電費為:{0}", sum);
Console.ReadLine();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.90.8
推 kojiro1982:degree < 110這一個敘述是boolean值 10/11 00:15
→ kojiro1982:不是true 就是false 10/11 00:16
→ kojiro1982:而degree是int 所以會發生錯誤 10/11 00:17
→ kojiro1982:這個程式不適合用switch case 10/11 00:17
→ kojiro1982:還是用 if...else if...else if......else 來寫吧 10/11 00:18