【问题标题】:How can I stop an empty variable from being output? [duplicate]如何停止输出空变量? [复制]
【发布时间】: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 &gt;= 1 &amp;&amp; inputNumber &lt;= 12),也就是说,当您可能需要 AND 时,您编写了 OR。
  • 谢谢,这解决了我的问题!

标签: java switch-statement case joptionpane


【解决方案1】:

将条件语句修改如下。

if(inputNumber >= 1 && inputNumber <= 12)
{
    JOptionPane.showMessageDialog(null, "Quarter: " + quarter);
}

【讨论】:

    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多