你是否曾經內心充滿各種如果呢?
如果....我就....,
一組if
已經滿足不了你時,
那該如何是好呢?
Switch語句中的測試量可以是一個變數,也可以是一個表達式。程式一一測試case分支中的值,測試匹配到哪個分支中的值,就執行哪個分支中的語句。 每個分支都已break語句結束,敘述句一旦遇到break,就會結束整個語句。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpDemo
{
class Program
{
static void Main(string[] args)
{
//禮拜幾
string week = Console.ReadLine();
//使用switch
switch (week)
{
case "星期一":
Console.WriteLine("猴子穿新衣");
break;
case "星期二":
Console.WriteLine("猴子肚子餓");
break;
case "星期三":
Console.WriteLine("猴子去爬山");
break;
case "星期四":
Console.WriteLine("猴子去考試");
break;
case "星期五":
Console.WriteLine("猴子去跳舞");
break;
case "星期六":
Console.WriteLine("猴子去斗六");
break;
case "星期日":
Console.WriteLine("猴子過生日");
break;
}
Console.ReadKey();
}
}
}
輸入:
星期一
結果:
星期一
猴子穿新衣
輸入:
星期二
結果:
星期二
猴子肚子餓
###隨堂小練習
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CsharpDemo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入年月日");
int y = Convert.ToInt32(Console.ReadLine());
int m = Convert.ToInt32(Console.ReadLine());
int d = Convert.ToInt32(Console.ReadLine());
int total = 365; //平年
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
total = 366;
switch (m)
{
case 1:
total -= 31;
goto case 2;
case 2:
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) //閏年
{
total -= 29;
}
else
{
total -= 28;
}
goto case 3;
case 3:
total -= 31;
goto case 4;
case 4:
total -= 30;
goto case 5;
case 5:
total -= 31;
goto case 6;
case 6:
total -= 30;
goto case 7;
case 7:
total -= 31;
goto case 8;
case 8:
total -= 31;
goto case 9;
case 9:
total -= 30;
goto case 10;
case 10:
total -= 31;
goto case 11;
case 11:
total -= 30;
goto case 12;
case 12:
total -= 31;
goto default;
default: total += d; break;
}
Console.WriteLine(m+"月"+d+"日是"+y+"年的第"+ total + "天");
Console.ReadKey();
}
}
}
輸入
2021
09
09
結果:
請輸入年月日
2021
09
09
9月9日是2021年的第252天
go to 可以指定要去的條件,如果一個條件之下要跑好幾個分支就可以拿來做使用
在switch中的else,寫作default