12的数字和输出一个月

vzgqcmou  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(307)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
“编写一个程序,要求用户输入1到12之间的数字;输出将是相应的月份。一定要加入while语句。”—我的老师(作业)
这个月我大部分时间都在做计算器,但老师说我需要一段时间。对我的程序和while循环有什么帮助吗?

import java.util.Scanner;
public class Tester {

      public static void main(String[] args) {

            Scanner in = new Scanner(System.in);

            System.out.print("Enter month's number: ");

            int monthNumber;

            monthNumber = in.nextInt();

            if (monthNumber == 1)
                  System.out.println("January");
            else if (monthNumber == 2)
                  System.out.println("February");
            else if (monthNumber == 3)
                  System.out.println("March");
            else if (monthNumber == 4)
                  System.out.println("April");
            else if (monthNumber == 5)
                  System.out.println("May");
            else if (monthNumber == 6)
                  System.out.println("June");
            else if (monthNumber == 7)
                  System.out.println("July");
            else if (monthNumber == 8)
                  System.out.println("August");
            else if (monthNumber == 9)
                  System.out.println("September");
            else if (monthNumber == 10)
                  System.out.println("October");
            else if (monthNumber == 11)
                  System.out.println("November");
            else if (monthNumber == 12)
                  System.out.println("December");
            else
                  System.out.println("Invalid month.");
      }
}

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎

qvsjd97n

qvsjd97n1#

你不需要任何东西 while 循环,因为没有可迭代的内容。只需使用一个月数组,并使用月索引获取月名称。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String[] monthList = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
        Scanner in = new Scanner(System.in);
        System.out.print("Enter month's number: ");
        int month = in.nextInt();
        System.out.println(monthList[month - 1]);
    }
}
ttcibm8c

ttcibm8c2#

您可以使用无限循环(例如。 while(true){} )并在以下示例中所示的某些条件下将其打断。
另外,您可以使用内置类,而不是重新设计轮子。

import java.time.DateTimeException;
import java.time.Month;
import java.time.format.TextStyle;
import java.util.Locale;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (true) {
            System.out.print("Enter month's number or -1 to exit: ");
            int month = in.nextInt();
            if (month == -1) {
                break;
            }
            try {
                System.out.println(Month.of(month).getDisplayName(TextStyle.FULL, Locale.ENGLISH));
            } catch (DateTimeException e) {
                System.out.println("Invalid month");
            }
        }
    }
}

示例运行:

Enter month's number or -1 to exit: 1
January
Enter month's number or -1 to exit: 9
September
Enter month's number or -1 to exit: 90
Invalid month
Enter month's number or -1 to exit: -1

在trail:date-time了解有关日期时间api的更多信息。

其他一些选择:

你可以使用 String[] 如下图所示:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September",
                "October", "November", "December" };
        while (true) {
            System.out.print("Enter month's number or -1 to exit: ");
            int month = in.nextInt();
            if (month == -1) {
                break;
            }
            if (month >= 1 && month <= 12) {
                System.out.println(months[month - 1]);
            } else {
                System.out.println("Invalid month");
            }
        }
    }
}

另一种选择:
你可以用 switch-case .

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September",
                "October", "November", "December" };
        while (true) {
            System.out.print("Enter month's number or -1 to exit: ");
            int month = in.nextInt();
            if (month == -1) {
                break;
            }

            String monthName = "";
            switch (month) {
            case 1:
                monthName = "January";
                break;
            case 2:
                monthName = "February";
                break;
            case 3:
                monthName = "March";
                break;
            case 4:
                monthName = "April";
                break;
            case 5:
                monthName = "May";
                break;
            case 6:
                monthName = "June";
                break;
            case 7:
                monthName = "July";
                break;
            case 8:
                monthName = "August";
                break;
            case 9:
                monthName = "September";
                break;
            case 10:
                monthName = "October";
                break;
            case 11:
                monthName = "November";
                break;
            case 12:
                monthName = "December";
                break;
            default:
                monthName = "Invalid month";
            }
            System.out.println(monthName);
        }
    }
}

还有一个选择:
可以使用三元运算符。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (true) {
            System.out.print("Enter month's number or -1 to exit: ");
            int month = in.nextInt();
            if (month == -1) {
                break;
            }

            String monthName = month == 1 ? "January"
                    : month == 2 ? "February"
                            : month == 3 ? "March"
                                    : month == 4 ? "April"
                                            : month == 5 ? "May"
                                                    : month == 6 ? "June"
                                                            : month == 7 ? "July"
                                                                    : month == 8 ? "August"
                                                                            : month == 9 ? "September"
                                                                                    : month == 10 ? "October"
                                                                                            : month == 11 ? "November"
                                                                                                    : month == 12
                                                                                                            ? "December"
                                                                                                            : "Invalid month";

            System.out.println(monthName);
        }
    }
}

相关问题