3.08课·········switch case及if else嵌套(日期格式)
switch case
switch (n) { case 1: break; case 2: break; . . . case n: break; }
1、switch case必须与break一同使用,每一个case后面都有一个break.
2、switch后面的()不能接收小数类型的值
3、break是跳转语句,与switch case连用的时候是跳出最近的{}。
4、switch case多用于年月日的计算。
分别输入月份 几号 输出是今年的第多少天
每年的1 3 5 7 8 10 12月是31天
今年的2月是28天
其他的4 6 9 11是30天
int m1 = 31, m2 = 28, m3 = 31, m4 = 30, m5 = 31, m6 = 30, m7 = 31, m8 = 31, m9 = 30, m10 = 31, m11 = 30;//分别定义每个月的天数,12月份只需加上前面11个月的天数即可,不需定义 Console.Write("请输入月份:"); int m = int.Parse(Console.ReadLine()); Console.Write("请输入几号:"); int d = int.Parse(Console.ReadLine()); if ((m >= 1 && m <= 12) && (d >= 1 && d <= 31)) { switch (m) { case 1: Console.WriteLine("第" + d + "天"); break; case 2: Console.WriteLine("第" + (m1 + d) + "天"); break; case 3: Console.WriteLine("第" + (m1 + m2 + d) + "天"); break; case 4: Console.WriteLine("第" + (m1 + m2 + m3 + d) + "天"); break; case 5: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + d) + "天"); break; case 6: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + d) + "天"); break; case 7: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + d) + "天"); break; case 8: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + d) + "天"); break; case 9: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d) + "天"); break; case 10: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d) + "天"); break; case 11: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d) + "天"); break; case 12: Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d) + "天"); break; default: Console.WriteLine("您的输入有误!"); break; } } else { Console.WriteLine("您的输入有误!"); } Console.ReadLine();
输入一个年份,判断是否是闰年//普通年份是4的倍数但不能是100的倍数
//世纪年需要是400的倍数
Console.Write("请输入年份:"); int year=int.Parse(Console.ReadLine()); if((year%4==0&&year%100!=0)||year %400==0) { Console.WriteLine("您输入的是闰年"); } else { Console.WriteLine("您输入的是平年"); } } Console.ReadLine();
输入年月日,看格式是不是正确(利用if else嵌套)
其思维导图如下:
Console.Write("请输入年份:"); int y = int.Parse(Console.ReadLine()); if(y>=0&&y<=9999) { Console.Write("请输入月份:"); int m = int.Parse(Console.ReadLine()); if(m>=1&&m<=12) { Console.Write("请输入日期:"); int d = int.Parse(Console.ReadLine()); if(d>=1&&d<=31) { if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { Console.WriteLine("您输入的日期格式正确:"+y+"-"+m+"-"+d); } else if (m == 4 || m == 6 || m == 9 || m == 11) { if (d <= 30) { Console.WriteLine("您输入的日期格式正确:" + y + "-" + m + "-" + d); } else { Console.WriteLine("您输入的日期格式有误!"); } } else//剩下的2月份 { if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)//年份是闰年 { if (d <= 29) { Console.WriteLine("您输入的日期格式正确:" + y + "-" + m + "-" + d); } else { Console.WriteLine("您输入的日期格式有误!"); } } else//不是闰年,是平年 { if (d <= 28) { Console.WriteLine("您输入的日期格式正确:" + y + "-" + m + "-" + d); } else { Console.WriteLine("您输入的日期格式有误!"); } } } } else { Console.WriteLine("您输入的日期格式有误!"); } } else { Console.WriteLine("您输入的月份格式有误!"); } } else { Console.WriteLine("您输入的年份格式有误!"); } Console.ReadLine();
Where is a will ,there is a way!