Java: 我在 Main 方法中的语句正在打印,但在我的其他方法中没有
Java: My statements int he Main method are printing, but not in my other methods
这是代码。它是日历程序的骨架,可以查找月份和年份。我不确定为什么我们的老师想要命令行参数位,所以暂时忽略它,除非它影响我的代码。在页面底部,我将显示输出。当我收到输出时,尽管在该方法中要求用户输入,但第二种方法(处理月份)不会显示任何内容。我希望我的程序首先询问用户想要查看哪一年,然后是月份。我确定我犯了一些明显的错误,但有人可以指出正确的方向吗?
package calendardisplay;
/**
*
* @author TheDancingPope
*/
import java.util.Scanner;
public class CalendarDisplay
{
static Scanner scan = new Scanner(System.in);
public static final String MONTH_NAME[] = {"","Jan","Feb","Mar",
"Apr", "May","June",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"};
public static void outputMonthName(int month)
{
System.out.println(MONTH_NAME[month]);
}
public static void main(String[] args)
{
for (int i = 1; i < MONTH_NAME.length; i++)
{
System.out.println("Month number:" + i +
"\nis Month Name:\n" + MONTH_NAME[i]);
}
//Processes command line argument
System.out.println("Number of command line arguments: " + args.length);
for(int i = 0; i < args.length; i++)
{
System.out.println("Argument " + i + ": " + args[i]);
}
//This next section handles the leap year scanner. Based on the
//calculation below, paired with the user input, I will be able to tell
//whether or not they picked a leap year.
System.out.println("Please choose a year");
int yearChosen = scan.nextInt();
boolean isLeapYear = ((yearChosen % 4 == 0) && (yearChosen % 100 !=0)
|| (yearChosen % 400 == 0));
System.out.println("You chose\n" + yearChosen);
if (isLeapYear)
{
System.out.println (yearChosen + "\n is a leap year.");
} else
System.out.println(yearChosen + "\n is not a leap year.");
}
//This is where the months are processed. In here, I will sort through
//the months chosen via the user, and based on their month, I will bring up
//a formatted calendar for that month, with the correct amount of days in it.
public static int monthTime()
{
System.out.println("Please chose a month:\n");
int monthChosen = scan.nextInt();
String monthString;
switch (monthChosen)
{
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println("You chose:\n" + monthString);
return monthChosen;
}
}
当我 运行 这样做时,我在我的代码下面的小 netbeans 框中得到以下输出:
run:
Month number:1
is Month Name:
Jan
Month number:2
is Month Name:
Feb
Month number:3
is Month Name:
Mar
Month number:4
is Month Name:
Apr
Month number:5
is Month Name:
May
Month number:6
is Month Name:
June
Month number:7
is Month Name:
Jul
Month number:8
is Month Name:
Aug
Month number:9
is Month Name:
Sep
Month number:10
is Month Name:
Oct
Month number:11
is Month Name:
Nov
Month number:12
is Month Name:
Dec
Number of command line arguments: 0
Please choose a year
2015
You chose
2015
2015
is not a leap year.
BUILD SUCCESSFUL (total time: 5 seconds)
它提示我作为用户输入一年,而不是一个月。我已经提示程序以该方法初始化一个 int 扫描仪,但我什么也没得到。我做错了什么?
您的 monthTime()
方法从未被调用。您可能想在 main
方法的末尾调用它。
您没有在您的 main 中调用函数 monthTime(),尝试在您的 yearChosen 之后调用它?
默认情况下唯一的方法 运行 是 Main 方法。要调用其他方法,您必须在 Main 方法中包含对它们的调用。
这是代码。它是日历程序的骨架,可以查找月份和年份。我不确定为什么我们的老师想要命令行参数位,所以暂时忽略它,除非它影响我的代码。在页面底部,我将显示输出。当我收到输出时,尽管在该方法中要求用户输入,但第二种方法(处理月份)不会显示任何内容。我希望我的程序首先询问用户想要查看哪一年,然后是月份。我确定我犯了一些明显的错误,但有人可以指出正确的方向吗?
package calendardisplay;
/**
*
* @author TheDancingPope
*/
import java.util.Scanner;
public class CalendarDisplay
{
static Scanner scan = new Scanner(System.in);
public static final String MONTH_NAME[] = {"","Jan","Feb","Mar",
"Apr", "May","June",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"};
public static void outputMonthName(int month)
{
System.out.println(MONTH_NAME[month]);
}
public static void main(String[] args)
{
for (int i = 1; i < MONTH_NAME.length; i++)
{
System.out.println("Month number:" + i +
"\nis Month Name:\n" + MONTH_NAME[i]);
}
//Processes command line argument
System.out.println("Number of command line arguments: " + args.length);
for(int i = 0; i < args.length; i++)
{
System.out.println("Argument " + i + ": " + args[i]);
}
//This next section handles the leap year scanner. Based on the
//calculation below, paired with the user input, I will be able to tell
//whether or not they picked a leap year.
System.out.println("Please choose a year");
int yearChosen = scan.nextInt();
boolean isLeapYear = ((yearChosen % 4 == 0) && (yearChosen % 100 !=0)
|| (yearChosen % 400 == 0));
System.out.println("You chose\n" + yearChosen);
if (isLeapYear)
{
System.out.println (yearChosen + "\n is a leap year.");
} else
System.out.println(yearChosen + "\n is not a leap year.");
}
//This is where the months are processed. In here, I will sort through
//the months chosen via the user, and based on their month, I will bring up
//a formatted calendar for that month, with the correct amount of days in it.
public static int monthTime()
{
System.out.println("Please chose a month:\n");
int monthChosen = scan.nextInt();
String monthString;
switch (monthChosen)
{
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println("You chose:\n" + monthString);
return monthChosen;
}
}
当我 运行 这样做时,我在我的代码下面的小 netbeans 框中得到以下输出:
run:
Month number:1
is Month Name:
Jan
Month number:2
is Month Name:
Feb
Month number:3
is Month Name:
Mar
Month number:4
is Month Name:
Apr
Month number:5
is Month Name:
May
Month number:6
is Month Name:
June
Month number:7
is Month Name:
Jul
Month number:8
is Month Name:
Aug
Month number:9
is Month Name:
Sep
Month number:10
is Month Name:
Oct
Month number:11
is Month Name:
Nov
Month number:12
is Month Name:
Dec
Number of command line arguments: 0
Please choose a year
2015
You chose
2015
2015
is not a leap year.
BUILD SUCCESSFUL (total time: 5 seconds)
它提示我作为用户输入一年,而不是一个月。我已经提示程序以该方法初始化一个 int 扫描仪,但我什么也没得到。我做错了什么?
您的 monthTime()
方法从未被调用。您可能想在 main
方法的末尾调用它。
您没有在您的 main 中调用函数 monthTime(),尝试在您的 yearChosen 之后调用它?
默认情况下唯一的方法 运行 是 Main 方法。要调用其他方法,您必须在 Main 方法中包含对它们的调用。