(二)switch case
switch case 必須與 break 一同使用。break是跳轉語句。與switch case連用的時候是跳出最近的{}。
注: ●若case后面接收的是字符串類型(string),需要:case “1”:
●default相當於else。
●switch case 類型一定可以轉換成 if else 類型,相反,則不一定。
例題:1、Console.WriteLine("1.漢堡包");
Console.WriteLine("2.薯條");
Console.WriteLine("3.雞塊");
Console.WriteLine("4.雞腿");
Console.WriteLine("5.雞米花");
Console.Write("請輸入您的選擇項目數字:");
string a = Console.ReadLine();
switch (a)//括號內是被判斷的變量名稱
{
case "1"://case后面的值是用來判斷上面括號內的變量相不相等
Console.WriteLine("您選擇的是漢堡包");
break;//break跳轉語句,跳出最近的花括號
case "2"://case與值之間有空格隔開 值后面是冒號
Console.WriteLine("您選擇的是薯條");
break;
case "3":
Console.WriteLine("您選擇的是雞塊");
break;
case "4":
Console.WriteLine("您選擇的是雞腿");
break;
case "5":
Console.WriteLine("您選擇的是雞米花");
break; //最后一個也需要跳出花括號
}
2、分別輸入月份 幾號 輸出是今年的第多少天。(每年的1 3 5 7 8 10 12月是31天,今年的2月是28天,其他的4 6 9 11是30天)
int a1 = 31, a2 = 28, a3 = 31, a4 = 30, a5 = 31, a6 = 30, a7 = 31, a8 = 31, a9 = 30, a10 = 31, a11 = 30, a12 = 31;
Console.Write("請輸入月份:");
int a = int.Parse(Console.ReadLine ());
Console.Write("請輸入幾號");
int b = int.Parse(Console.ReadLine ());
switch (a)
{
case 1:
Console.WriteLine("第"+b+"天");
break;
case 2:
Console.WriteLine("第" + (a1+b) + "天");
break;
case 3:
Console.WriteLine("第" + (a1+a2+b) + "天");
break;
case 4:
Console.WriteLine("第" + (a1 + a2 + a3 + b) + "天");
break;
case 5:
Console.WriteLine("第" + (a1 + a2 + a3 + a4+ b) + "天");
break;
case 6:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + b) + "天");
break;
case 7:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + a6 + b) + "天");
break;
case 8:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + b) + "天");
break;
case 9:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + b) + "天");
break;
case 10:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + b) + "天");
break;
case 11:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + b) + "天");
break;
case 12:
Console.WriteLine("第" + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + b) + "天");
break;
default :
Console.WriteLine("輸入錯誤");
break;
}
Console.ReadLine();
3、將10個題目用一個程序運行出來:
①鍵盤鍵入三個數,找出來最大的數
②“現在幾點了?”鍵盤鍵入小時數,判斷是上午還是下午。打印出來現在是上午幾點還是下午幾點
③輸入一個小於等於100的整數,判斷:是小於10的,兩位數,是100。
④輸入學生姓名,輸入考試成績(double):,若是100,【恭喜你***,滿分通過!】,若是大於等於80小於100,【**,你很優秀,繼續保持!】,若是大於等於60小於80,【**成績良好】,大於等於50小於60,【**就差一點點,下次一定要至少及格!】。
⑤輸入年份判斷是否為閏年
⑥有一組函數:y = x (x<1);y = 2x -1 (1<=x<10); y = 3x-11 (x>=10)。括號內是x的滿足條件。實現功能,隨意輸入一個x值,輸出y的值。
⑦相親過程:你有房子么?你有錢么?你有能力么?
【結婚吧】【先買房子在結婚】【先賺錢再買房子再結婚】都沒有【拜拜~~】利用if嵌套做相親過程
⑧輸入年月日,看看格式是否正確
⑨方程ax2+bx+c=0;一元二次方程。求根(△=b2-4ac;若△<0方程無實根,若△>0,方程有兩個不相同的實根x1 x2,若△=0,方程有兩個相同的實根)
⑩標准體重:男士體重=身高-100±3,女士體重=身高-110±3。
程序: Console.WriteLine("1、三個數比大小");
Console.WriteLine("2、上午、下午幾點");
Console.WriteLine("3、小於100整數");
Console.WriteLine("4、考試成績情況");
Console.WriteLine("5、判斷閏年");
Console.WriteLine("6、知x求y");
Console.WriteLine("7、相親");
Console.WriteLine("8、年、月、日正確格式");
Console.WriteLine("9、一元二次方程");
Console.WriteLine("10、標准體重");
Console.WriteLine("請輸入你想求解的題目的編號");
int m = int.Parse(Console.ReadLine());
switch (m)
{
case 1:
Console.Write("請輸入一個數:r=");
double r = double.Parse(Console.ReadLine());
Console.Write("請輸入一個數:s=");
double s = double.Parse(Console.ReadLine());
Console.Write("請輸入一個數:t=");
double t = double.Parse(Console.ReadLine());
if (r < s && r < t)
{
if (s < t)
{
Console.WriteLine("三個數有小到大排序是:{0}<{1}<{2}", r, s, t);
}
else
{
Console.WriteLine("三個數有小到大排序是:{0}<{1}<{2}", r, t, s);
}
}
else if (s < r && s < t)
{
if (r < t)
{
Console.WriteLine("三個數有小到大排序是:{0}<{1}<{2}", s, r, t);
}
else
{
Console.WriteLine("三個數有小到大排序是:{0}<{1}<{2}", s, t, r);
}
}
else if (t < r && t < s)
{
if (r < s)
{
Console.WriteLine("三個數有小到大排序是:{0}<{1}<{2}", t, r, s);
}
else
{
Console.WriteLine("三個數有小到大排序是:{0}<{1}<{2}", t, s, r);
}
}
else
{
Console.WriteLine("輸入的數有錯誤");
}
break;
case 2:
Console.Write("現在幾點了");
int e = int.Parse(Console.ReadLine());
if (e >= 0 && e <= 24)
{
if (e <= 12)
{
Console.WriteLine("現在是上午" + e + "點");
}
else
{
int f = e - 12;
Console.WriteLine("現在是下午{0}點", f);
}
}
else
{
Console.WriteLine("您輸入的時間點有誤");
}
break;
case 3:
Console.Write("請輸入一個小於等於100的整數g=");
int g = int.Parse(Console.ReadLine());
if (g >= 10 && g < 100)
{
Console.WriteLine("您輸入的整數是兩位數");
}
else if (g < 10)
{
Console.WriteLine("您輸入的整數是小於10的");
}
else
{
Console.WriteLine("您輸入的整數是100");
}
break;
case 4:
Console.Write("請輸入考生姓名:");
string h = Console.ReadLine();
Console.Write("輸入考試成績:");
double i = double.Parse(Console.ReadLine());
if (i == 100)
{
Console.WriteLine("恭喜你***,滿分通過!");
}
else if (i >= 80 && i < 100)
{
Console.WriteLine("**,你很優秀,繼續保持!");
}
else if (i >= 60 && i < 80)
{
Console.WriteLine("**成績良好");
}
else if (i >= 60 && i < 80)
{
Console.WriteLine("**就差一點點,下次一定要至少及格!");
}
else
{
Console.WriteLine("成績輸入錯誤");
}
break;
case 5:
Console.Write("請輸入一個年份:");
int j = int.Parse(Console.ReadLine());
if (j >= 0 && j < 9999)
{
if ((j % 4 == 0 && j % 100 != 0) || j % 400 == 0)
{
Console.WriteLine("您輸入的年份是閏年!");
}
}
else
{
Console.WriteLine("輸入年份有誤!");
}
break;
case 6:
Console.Write("請輸入一個數x:");
double k = double.Parse(Console.ReadLine());
if (k < 1)
{
Console.WriteLine("y=" + k);
}
else if (k >= 1 && k < 10)
{
Console.WriteLine("y=" + (2 * k - 1));
}
else
{
Console.WriteLine("y=" + (3 * k - 11));
}
break;
case 7:
Console.Write("你有房子嗎");
string home = Console.ReadLine();
if (home == "有")
{
Console.WriteLine("結婚吧!");
}
else
{
Console.WriteLine("你有錢嗎");
string money = Console.ReadLine();
if (money == "有")
{
Console.WriteLine("先買房子再結婚");
}
else
{
Console.WriteLine("你有能力嗎");
string ability = Console.ReadLine();
if (ability == "有")
{
Console.WriteLine("先賺錢再房子再結婚");
}
else
{
Console.WriteLine("拜拜!");
}
}
}
break;
case 8:
Console.Write("輸入年份:");
int year = int.Parse(Console.ReadLine());
if (year >= 0 && year < 9999)
{
Console.Write("輸入月份:");
int month = int.Parse(Console.ReadLine());
if (month >= 1 && month <= 12)
{
Console.Write("輸入日:");
int day = int.Parse(Console.ReadLine());
if (day >= 1 && day <= 31)
{
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
Console.WriteLine("您輸入的日期格式正確!日期是:{0}-{1}-{2}", year, month, day);
}
else
{
if (month == 4 || month == 6 || month == 9 || month == 11)
{
if (day <= 30)
{
Console.WriteLine("您輸入的日期格式正確!日期是:{0}-{1}-{2}", year, month, day);
}
else
{
Console.WriteLine("輸入有誤");
}
}
else
{
if (day <= 28)
{
Console.WriteLine("您輸入的日期格式正確!日期是:{0}-{1}-{2}", year, month, day);
}
else
{
if (day == 29)
{
if ((day % 4 == 0 && day % 100 != 0) || day % 400 == 0)
{
Console.WriteLine("您輸入的日期格式正確!日期是:{0}-{1}-{2}", year, month, day);
}
else
{
Console.WriteLine("輸入有誤");
}
}
else
{
Console.WriteLine("輸入有誤");
}
}
}
}
}
else
{
Console.WriteLine("輸入的日有誤");
}
}
else
{
Console.WriteLine("輸入的月份有誤");
}
}
else
{
Console.WriteLine("輸入的年份有誤");
}
break;
case 9:
Console.WriteLine ("求解方程ax*x+bx+c=0");
Console.Write("輸入a=");
double a = double.Parse(Console.ReadLine());
Console.Write("輸入b=");
double b = double.Parse(Console.ReadLine());
Console.Write("輸入c=");
double c = double.Parse(Console.ReadLine());
double de = b * b - 4 * a * c;
if (a == 0)
{
Console.WriteLine("方程不是一元二次方程");
}
else
{
Console.WriteLine("方程是一元二次方程");
if (de >= 0)
{
double x1 = (-b + Math.Sqrt(de)) / (2 * a);
double x2 = (-b - Math.Sqrt(de)) / (2 * a);
if (de > 0)
{
Console.Write("方程有兩個不同的實數根:");
Console.WriteLine("x1=" + x1, "x2=" + x2);
}
else
{
Console.Write("方程有兩個相同的實數根:");
Console.WriteLine("x1=x2=" + x1);
}
}
else
{
Console.WriteLine("方程沒有實數根");
}
}
break;
case 10:
Console.Write("請輸入性別:");
string x = Console.ReadLine();
Console.Write("請輸入體重(kg):");
double y = double.Parse(Console.ReadLine());
Console.Write("請輸入身高(cm):");
double z = double.Parse(Console.ReadLine());
if (x == "男")
{
double d = y - z + 100;
if (d >= -3 && d <= 3)
{
Console.WriteLine("您的體重是標准的!");
}
else if (d > 3)
{
Console.WriteLine("您需要減肥了!");
}
else
{
Console.WriteLine("您需要增加營養!");
}
}
else if (x == "女")
{
double d = y - z + 110;
if (d >= -3 && d <= 3)
{
Console.WriteLine("您的體重是標准的!");
}
else if (d > 3)
{
Console.WriteLine("您需要減肥了!");
}
else
{
Console.WriteLine("您需要增加營養!");
}
}
else
{
Console.WriteLine("輸入錯誤");
}
break;
default:
Console.WriteLine("您輸入的編號有誤");
break;
}
Console.ReadLine();
