Java:我在 Main 方法中的语句正在打印,但在其他方法中却没有打印

标签 java methods input output println

所以这是代码。它是一个日历程序的框架,用于查找月份和年份。我不确定为什么我们的老师想要命令行参数位,所以现在忽略它,除非它影响我的代码。在页面底部,我将显示输出。当我收到输出时,尽管在该方法中调用了用户输入,但第二种方法(处理月份)中的任何内容都不会显示。我希望我的程序首先询问用户想要查看哪一年,然后询问月份。我确信我犯了一些明显的错误,但是有人能指出我正确的方向吗?

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 扫描仪,但我什么也没得到。我做错了什么?

最佳答案

默认运行的唯一方法是 Main 方法。要调用其他方法,您必须在 Main 方法中包含对它们的调用。

关于Java:我在 Main 方法中的语句正在打印,但在其他方法中却没有打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316262/

相关文章:

javascript - 如何在没有浏览器检测的情况下识别 "input"事件中的错误行为?

c# - Servlet,写入数据

java - 从 Java 中的 RESTful Web 服务方法返回一个整数

java - Infinispan相当于ehcache的copyOnRead和copyOnWrite

java - 编译android studio失败

python - 为什么 2.__add__(3) 在 Python 中不起作用?

vba - 如何检查对象是否支持vba中的方法?

ruby - 如何停止这个在 Ruby 中被错误初始化的方法?

css - 样式化 HTML5 数字输入

html - 如果在输入 [类型 ='number'] 中插入字母表,如何停止光标移动?