【发布时间】:2019-04-28 14:15:59
【问题描述】:
以下程序应显示一个窗口,要求输入从 1 到 12 的数字。 每个数字都设置为一个月的值(1 = 一月等)。 然后它应该输出输入的月份所在的一年中的季度(1 = 一月;一月 = 1。一年中的季度)。 错误的输入数字应向用户输出错误消息。 使用 Switch Case 进行评估。
到目前为止几乎一切正常,但我遇到的问题是,当我输入一个超出范围(1 到 12)的数字时,这意味着小于 1 或大于 12,我首先得到输出消息“输入错误!”然后还有消息“季度:”。
我已经检查了 oracle 网站上的那个问题,但是我找不到任何关于这个问题的信息。 他们有类似的代码,但它在命令行中输出,我想用 JOptionPane.showMessageDialog 来做到这一点
import javax.swing.*;
public class WhichQuarterIsThis
{
public static void main(String[] args)
{
String input, output, quarter;
int inputNumber;
input = JOptionPane.showInputDialog(null, "put in a number (1-12).");
inputNumber = Integer.parseInt(input);
quarter = "";
switch(inputNumber)
{
case 1:
case 2:
case 3: quarter = "1";
break;
case 4:
case 5:
case 6: quarter = "2";
break;
case 7:
case 8:
case 9: quarter ="3";
break;
case 10:
case 11:
case 12: quarter = "4";
break;
default: JOptionPane.showMessageDialog(null,"wrong input!");
}
if(inputNumber >= 1 || inputNumber <= 12)
{
JOptionPane.showMessageDialog(null, "Quarter: " + quarter);
}
}
}
当输入值超出 1 到 12 之间的范围时,不应输出“季度:”字段。
提前致谢。
【问题讨论】:
-
代码末尾的测试应该是
if(inputNumber >= 1 && inputNumber <= 12),也就是说,当您可能需要 AND 时,您编写了 OR。 -
谢谢,这解决了我的问题!
标签: java switch-statement case joptionpane