class DayCounter {
public static void main(String[] arguments) {
int yearIn = 2001;
int monthIn = 2;
if (arguments.length > 0)
monthIn = Integer.parseInt(arguments[0]);
if (arguments.length > 1)
yearIn = Integer.parseInt(arguments[1]);
System.out.println(monthIn + "/" + yearIn + " has "
+ countDays(monthIn, yearIn) + " days.");
} static int countDays(int month, int year) {
int count = -1;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
count = 31;
break;
case 4:
case 6:
case 9:
case 11:
count = 30;
break;
case 2:
if (year % 4 == 0)
count = 29;
else
count = 28;
if ((year % 100 == 0) & (year % 400 != 0))
count = 28;
}
return count;
}
}
上述代码中 if (arguments.length > 0)
monthIn = Integer.parseInt(arguments[0]);
if (arguments.length > 1)
yearIn = Integer.parseInt(arguments[1]);的作用是什么?
为什么我把此代码注释掉的结果和没注释的结果一样呢
public static void main(String[] arguments) {
int yearIn = 2001;
int monthIn = 2;
if (arguments.length > 0)
monthIn = Integer.parseInt(arguments[0]);
if (arguments.length > 1)
yearIn = Integer.parseInt(arguments[1]);
System.out.println(monthIn + "/" + yearIn + " has "
+ countDays(monthIn, yearIn) + " days.");
} static int countDays(int month, int year) {
int count = -1;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
count = 31;
break;
case 4:
case 6:
case 9:
case 11:
count = 30;
break;
case 2:
if (year % 4 == 0)
count = 29;
else
count = 28;
if ((year % 100 == 0) & (year % 400 != 0))
count = 28;
}
return count;
}
}
上述代码中 if (arguments.length > 0)
monthIn = Integer.parseInt(arguments[0]);
if (arguments.length > 1)
yearIn = Integer.parseInt(arguments[1]);的作用是什么?
为什么我把此代码注释掉的结果和没注释的结果一样呢
arguments[1]是接收年
int monthIn = 2;
已经给它们有值了,如果不输入也一样可以运行.
int monthIn = 2;不是已经定义了年,月么,怎么从键盘接收,代码运行后直接出结果,就没有让从键盘输出年,月的输入框啊
int yearIn = 2001;
int monthIn = 2;
已经给它们有值了,如果不输入也一样可以运行.
不输入什么,也一样可以运行?
是说int yearIn ;
int monthIn ;不行,我刚才试了,必须得初始化;
monthIn = Integer.parseInt(arguments[0]);
if (arguments.length > 1)
yearIn = Integer.parseInt(arguments[1]);的作用是什么?
为什么我把此代码注释掉的结果和没注释的结果一样呢
============
那是因为你没有加命令行参数你用:java DayCounter 12 2006运行程序你再看看结果一样不?