黑马程序员技术交流社区
标题:
关于年份的判断
[打印本页]
作者:
↖落葉下♀媃媚
时间:
2013-3-29 11:05
标题:
关于年份的判断
//让用户输入一个年份,判断如果是润年,则输出true,如果不是则输出false。润年的判定(符合下面两个条件之一):
//a、年份能够被400整除.(2000)
//b、年份能够被4整除但不能被100整除.(2008)
static void Main(string[] args)
{
Console.WriteLine("请输入年份?");
int year = int.Parse(Console.ReadLine());
if(year /400==0 || year/4==0&&year/100!=0)
{
Console.WriteLine("true");
}
else
{
Console.WriteLine("false");
}
Console.ReadKey(); 这里我还用不用进行输入的是否是年份的判断?
作者:
↖落葉下♀媃媚
时间:
2013-3-29 11:07
如果不进行输入的是否是年份的判断?这道题会不会按错误处理?应不应该使用try-catch?
作者:
郑丹丹1990
时间:
2013-3-29 11:18
↖落葉下♀媃媚 发表于 2013-3-29 11:07
如果不进行输入的是否是年份的判断?这道题会不会按错误处理?应不应该使用try-catch? ...
这个我试了,要加是否是数字的判断,输入非数字类型的无法正确转化为int的。但是try...catch语句我听杨中科老师讲的是尽量不要使用它,程序中的异常不要都用Try....catch处理,要自己学会正确的处理。
不知道是否是您的答案呢????
作者:
王杨武
时间:
2013-3-29 11:25
↖落葉下♀媃媚 发表于 2013-3-29 11:07
如果不进行输入的是否是年份的判断?这道题会不会按错误处理?应不应该使用try-catch? ...
你首先要判断年份 的格式 不符合格式 就不要判断了 直接return。让他停止执行。判断是否是数字可以用try-catch 但是在程序中能不用就不用。 因为try了就会增加资源的占用。对程序的稳定行不好。有些时候不要只是判断数字类型的日期 中文日期的也有。得看你的项目需要了。
作者:
邵震
时间:
2013-3-29 12:55
static void Main(string[] args)
{
Console.WriteLine("请输入年份?");
int year = int.Parse(Console.ReadLine());
if(year /400==0 || year/4==0&&year/100!=0)
{
Console.WriteLine("true");
}
else
{
Console.WriteLine("false");
}
}
复制代码
你的格式太乱了 我改了一下 虽然还是没看懂 但是至少顺序好看多了
我继续研究你的题 挺有意思的题
不过 你确定是被400整除? 假如1998年是闰年这么算?
作者:
张振
时间:
2013-3-29 12:59
你的代码判断是否是闰年的逻辑关系运算符符号写错了,应该是求余 "%"
try```catch 可以使用,但是范围太广了 有人输入负数 也可以的,所以 你最好在试着逻辑关系式加点判断要大于0的数
比如 你的year :
year>=0,或者判断year必须为整数,来保证你输入的year只有两种情况,一种是符合年份要求的,一种是字母的,然后就可以try catch了
作者:
DWC_5101
时间:
2013-3-29 13:53
需要进行输入年份的判断,因为可能输入的是非数字、负数等。try-catch尽量少用。
判断逻辑最好写在一个单独的方法里。
如下:
/// <summary>
/// 从控制台获取年份
/// </summary>
/// <returns></returns>
static int GetYear()
{
string inputStr;
int year;
//无限循环,直到输入正确的年份
while (true)
{
inputStr = Console.ReadLine();
//当是整数并且不是负数时,才是年份
if (int.TryParse(inputStr, out year) && year >= 0)
{
return year;
}
else
{
Console.WriteLine("请输入正整数,表示年份");
}
}
}
调用方法:
int year = GetYear();
另一问题:
if(year /400==0 || year/4==0&&year/100!=0)
/ 应写成 %
作者:
管章鹏
时间:
2013-3-29 14:30
我感觉你这里需要进行年份格式的判断,因为如果不判断的话,用户如果输入的是字符串或者是一些小数负数的就可能会出现异常,此时应该try起来,以前看传智播客老师的视频时,老师说只要涉及到数据类型转化的地方尽量要try起来,防止出现非法字符或是异常。还有就是闰年应该是四年一闰,百年不润,四百年再润,
if((year % 400 == 0)||(year % 4 == 0)&&(year % 100 != 0))//闰年的计算方法 那个应该是%而不是/,你试试看,希望对你会有帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2