布尔循环与JOptionPane Java结合使用

时间:2015-07-04 08:44:31

标签: java loops joptionpane

我很想分享我的代码。但是在我的大学里,代码会被测试为#34;作弊"。

但这是我的代码更简单的形式。

public static String readin() {
    boolean error = false;
    do {
        string stringin;
        stringin = JOptionPane.showInputDialog(null, "Please enter a number");
        switch (stringin.length()) {
            case 0:
                JOptionPane.showMessageDialog(null, "Error Please repeat");
                error = true;

            case 1:
                return stringin;
        }
        return null;
    } while (error == true);
}

本规范实际上是最简单的形式。我知道,对于这种情况,设置while到JOptionPane是空的还是什么会更聪明。因为在我的代码中有12个不同的错误情况。我想使用布尔值。请:返回null将永远不会出现在实际代码中。

但是我遇到的真正问题是:除了重复循环之外,它还可以完美地运行。 我怎样才能做到这一点?

我也很抱歉我的英语错误。

编辑: 你所有的帮助解决了我的问题!非常感谢你!我喜欢这个论坛!

4 个答案:

答案 0 :(得分:0)

case 1(@Tuxxy_Thang)之前尝试休息,然后在return null;之前移除while (error);并放在之后。

public static String readin(){
    boolean error=false;
    do{ 
        string stringin;
        stringin=JOptionPane.showInputDialog(null,"Please enter a number");
        switch (stringin.length()){
            case 0: JOptionPane.showMessageDialog(null, "Error Please repeat");
                error=true;
                break;
            case 1: return stringin;
        } 
    } while (error);
    return null;
}

答案 1 :(得分:0)

您不必检查条件,因为您希望用户再次重复。只有在您拥有正确的值时返回,否则请再次询问

 public static String readin() {
        while (true) {
            String stringin = JOptionPane.showInputDialog(null, "Please enter a number");
            switch (stringin.length()) {
                case 0:
                    JOptionPane.showMessageDialog(null, "Error Please repeat");
                    break;//is important in switch cases
                case 1:
                    return stringin;
            }
        }
    }

答案 2 :(得分:0)

有两个原因:

  • return null应移至结束。
  • 第一个案例末尾应该有一个break声明

我已经给出了修改后的代码,如果用户没有为JOptionPane输入任何内容,它会重复循环:

public static String readin() {
    boolean error = false;
    do {
        String stringin;
        stringin = JOptionPane.showInputDialog(null,
                "Please enter a number");
        switch (stringin.length()) {
        case 0:
            JOptionPane.showMessageDialog(null, "Error Please repeat");
            error = true;
            break;                       // **added**
        case 1:
            return stringin;
        }
    } while (error == true);
    return null; // Moved here. It will return if user entered more than 1 letter.
}

答案 3 :(得分:0)

你正在努力完成一项简单的工作,正确使用Java类,你将有更轻松的时间

- project/
    - index.html
    - scripts/
       - main.js
       - require.js
       - fb.js

我添加了这个,因为我推断你要求用户输入一个数字,但你的代码只允许用户输入任何单个字符,无论它是否是有效数字,这就是你要返回的形式你的原始方法。