问题及代码:
运行结果:
switch语句和if-else语句的嵌套使用。
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:days.cpp
*作 者:单昕昕
*完成日期:2015年2月4日
*版 本 号:v1.0
*
*问题描述:输入年份和月份,输出本月有多少天。
*输入描述:两个整数,代表年份和月份。
*程序输出:一个整数,代表该月的天数。
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Math
{
class Program
{
static int Main()
{
int d, y, m; ;
Console.Write("请输入年份:");
y = int.Parse(Console.ReadLine());
Console.Write("请输入月份(1-12):");
m = int.Parse(Console.ReadLine());
switch (m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d = 31;
break;
case 4:
case 6:
case 9:
case 11:
d = 30;
break;
case 2:
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
d = 29;
else
d = 28;
break;
default:
d = 0;
break;
}
Console.WriteLine("该月的天数为:{0}\n",d);
Console.ReadKey();
return 0;
}
}
}
运行结果:
switch语句和if-else语句的嵌套使用。
学习心得:
强制改变类型需要加在输出流控制语句前面。
虽然我们对d赋值只需要考虑case1-12,但是default那句必须得有,这个不像C和C++可以木有。
如果木有default的话,会提示:错误 1 使用了未赋值的局部变量“d” F:\ConsoleApplication1\ConsoleApplication1\Program.cs 42 46 ConsoleApplication1。
我一开始还很奇怪,后来找了度娘才知道有这回事,不得不感慨说C#还是很严密的。