输出如下:
case0
case1
case2
-------------------
happy new year
what ?
monkey
上面例子说明了两个问题,第一个是不加break的后果,第二个是default的位置对执行的影响
3,多个case输出相同,可以只写一个case,如下面这个输出月份的天数的经典问题
[csharp] view plain copy using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace A_Month_Has_Days_Modified { class Program { static void Main(string[] args) { Console.WriteLine("请输入你要查询的年份"); int year = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入你要查询的月份"); int month = Convert.ToInt32(Console.ReadLine()); int bigDay = 31, smallDay = 30, leapDay = 29, nonleapDay = 28; bool isLeapYear; if ((year % 400 == 0) || ((year % 4 != 0) && (year % 100 == 0))) { isLeapYear = true; } else { isLeapYear = false; } switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: Console.WriteLine("{0}年{1}月共有{2}天", year, month, bigDay); break; case 4: case 6: case 9: case 11: Console.WriteLine("{0}年{1}月共有{2}天", year, month, smallDay); break; case 2: if (isLeapYear == true) { Console.WriteLine("{0}年{1}月共有{2}天", year, month, leapDay); } else { Console.WriteLine("{0}年{1}月共有{2}天", year, month, nonleapDay); } break; default: Console.WriteLine("您输入的年份或月份格式不正确,年份为四位数字,月份为1至12"); break; } Console.ReadKey(); } } }