已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
20小时前就关门了。
Improve this question
使用Switch语句创建一个程序,该程序将要求用户输入1 - 12之间的数字,则每个数字对应于日历中的一个月。如果数字不在范围中,则显示“该值不在日历上”。然后,它将询问用户是否要重试一个数字,或者它将关闭程序。如果用户输入Y表示是,则它将再次执行程序。如果用户选择N表示否,则将自动终止程序,并显示系统已终止。
import java.util.Scanner;
public class calendar {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter month's number: ");
int monthNumber;
monthNumber = in.nextInt();
switch (monthNumber) {
case 1:
System.out.println("January");
break;
case 2:
System.out.println("February");
break;
case 3:
System.out.println("March");
break;
case 4:
System.out.println("April");
break;
case 5:
System.out.println("May");
break;
case 6:
System.out.println("June");
break;
case 7:
System.out.println("July");
break;
case 8:
System.out.println("August");
break;
case 9:
System.out.println("September");
break;
case 10:
System.out.println("October");
break;
case 11:
System.out.println("November");
break;
case 12:
System.out.println("December");
break;
default:
System.out.println("Invalid month.");
break;
}
}
}
2条答案
按热度按时间polhcujo1#
首先,按照您的指示- * 如果数字不在范围内,则显示“该值不在日历上。"*,而不是“无效的月份”。
你可以使用一个常规的if语句,而不是一个开关。
询问用户是否要重试
看起来你没有尝试过这个,但是把上面的代码 Package 在一个while循环中,就像这样
在catch主体中,加入
它将显示系统已终止
同样,按照说明在while循环后打印此内容
pjngdqdw2#
因此,您必须实现“* 然后它将询问用户是否要重试... *”部分。
你需要初始化一个布尔变量来检查用户是否想再试一次。(我建议在程序的一个单独的块中初始化所有的变量,这样看起来更整洁。)
现在,您可以运行一个for循环,直到变量(ch)变为false。
您可以将switch case复制并粘贴到for循环中,并在循环完成后询问用户是否要重试。
将所有这些组合在一起,您的程序应该看起来像这样:
希望这对你有帮助:)