【问题标题】:How to declare a int to be specific value/number如何将 int 声明为特定值/数字
【发布时间】:2013-10-28 12:35:40
【问题描述】:

例如,我正在编写一个接受 textinput 并将其转换为 int 的程序。我希望数字的输入小于或等于5,但大于或等于0(0

   int number;
   textinput = JOptionPane.showInputDialog("give me a number");
   number = Integer.parseInt(textinput);

我希望用户输入一个介于 0 和 5 之间的数字,如果他们输入任何其他数字,则会出现一条消息说该数字无效,然后他们再次输入

编辑:感谢您的回答,我使用了 do while 循环并且它有效,我现在只想问,我将如何制作一个弹出框说:“错误:请输入 0 到 5 之间的数字”,然后再次显示输入框。

谢谢

【问题讨论】:

  • 使用while循环不断检查值。

标签: java int boolean


【解决方案1】:

使用do-while 循环:

int number;
do {
    String textinput = JOptionPane.showInputDialog("give me a number between 0 and 5");
    number = Integer.parseInt(textinput);
} while (!(number >= 0 && number <= 5));

编辑:如果您想显示错误消息,请尝试:

String textinput = JOptionPane.showInputDialog("give me a number between 0 and 5");
int number = Integer.parseInt(textinput);
while (!(number >= 0 && number <= 5)) {
    textinput = JOptionPane.showInputDialog("error: please a number between 0 and 5");
    number = Integer.parseInt(textinput);
}

【讨论】:

  • 大声笑,为什么这个答案的票数一直在上下波动? :P
  • 有人还在犹豫,我猜:P
  • 感谢您的回答,我使用了 do while 循环并且它有效,我现在只想问,我将如何制作一个弹出框说:“错误:请输入一个介于 0 和 5 之间的数字",然后再次显示输入框。
  • 我应该在哪里添加 joptionpane?对不起,如果这听起来很愚蠢,我真的是 java 新手
  • @Donnie 你会将第一条消息移出循环,然后将新消息放入while 循环中。我会在使用计算机时编辑我的答案(现在通过手机发表评论)
【解决方案2】:

如果您的目标是阻止用户提供错误输入,只需一行代码即可轻松完成。

使用下面的格式

JOptionPane.showInputDialog(parentComponent, message, title, messageType, icon, selectionValues, initialSelectionValue)

这将给出一组预定义的可供选择的值。例如。

JOptionPane.showInputDialog(null, "test", "test", JOptionPane.INFORMATION_MESSAGE, null, new Integer[]{0,1,2,3,4,5}, 0);

会产生一些像这样的输出

但是如果你需要做验证,并抛出一些错误,你可以按照上面的方法。

【讨论】:

    【解决方案3】:

    编辑:

    import javax.swing.*;
    public class Untitled{
        public static void main(String[] args){
            int in = -1;
            while( in < 0 || in > 5){
                String m = JOptionPane.showInputDialog("enter number");
                in = Integer.parseInt(m);
                if(in < 0 || in > 5){
                    JOptionPane.showMessageDialog(null,"enter again");
                }   
            }
        }
    }
    

    【讨论】:

    • 您的while 条件不正确。这将一直循环,直到用户输入 incorrect 值,此时它将打印“再次输入”但退出循环。
    • 你的循环对于合法值是无限的。
    • (另外,这甚至不能编译)
    • 这仍然无法编译。你的语法是错误的。另外,在使用 in 之前,您永远不会初始化它。
    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多