Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要一个循环来询问用户5次1到10之间的数字_Java - Fatal编程技术网

Java 我需要一个循环来询问用户5次1到10之间的数字

Java 我需要一个循环来询问用户5次1到10之间的数字,java,Java,在这个函数中,我需要一个循环,要求用户输入5个介于1和10之间的数字,并将这些数字存储在数组调用numArray中。我需要对用户的输入进行验证。我知道我需要另一个循环,允许用户输入5个不同的数字,但我不知道放在哪里 public class numberInput { static int number; static Scanner keyboard = new Scanner(System.in); public static void main(String[] args) throw

在这个函数中,我需要一个循环,要求用户输入5个介于1和10之间的数字,并将这些数字存储在数组调用numArray中。我需要对用户的输入进行验证。我知道我需要另一个循环,允许用户输入5个不同的数字,但我不知道放在哪里

public class numberInput {
static int number;

static Scanner keyboard = new Scanner(System.in);

public static void main(String[] args) throws IOException {

    // Calls inputNumbers function
    inputNumbers();

}

// inputNumbers function
public static void inputNumbers() {

    System.out.println("Please enter 5 numbers between 1 and 10.");
    number = keyboard.nextInt();

    // If below is true display error message
    while (number <= 0 || number > 10) {

        System.out.println("Error: Enter a number BETWEEN 1 and 10.");
        number = keyboard.nextInt();

    }

}
}
公共类编号输入{
静态整数;
静态扫描仪键盘=新扫描仪(System.in);
公共静态void main(字符串[]args)引发IOException{
//调用InputNumber函数
输入数字();
}
//输入数字函数
公共静态void inputNumber(){
System.out.println(“请输入1到10之间的5个数字”);
number=键盘.nextInt();
//如果以下为真,则显示错误消息
while(10号){
System.out.println(“错误:输入一个介于1和10之间的数字”);
number=键盘.nextInt();
}
}
}

就像这样,要求输入5个不同的数字:

public static void inputNumbers() {
        ArrayList<Integer> al = new ArrayList<Integer>();
        System.out.println("Please enter 5 distinct numbers between 1 and 10.");
            for(int i = 0;i<5;i++) {
                number = keyboard.nextInt();

                // If below is true display error message
                while (number <= 0 || number > 10 || al.contains(number)) {//al.contain(number) means does al have number in it

                    System.out.println("Error: Enter a number BETWEEN 1 and 10.");
                    number = keyboard.nextInt();

                }
                al.add(number);//now add the number into the arraylist
            }
}

使
inputNumber
提示输入有效信息,并将其作为值返回。将inputNumbers()循环创建并延迟5次。您应该使
inputNumbers()
返回一个
int
,而不是使用静态变量。@Idle\u注意,我想他想要5个数字。。。如何返回
int
???QAQI认为
inputNumbers()
方法通过将
void
更改为
int
只返回一个数字。然后在
main()
中启动循环,从循环中调用
inputNumbers()
,并将返回值放入
numaray
,该值也将位于
main()
@Idle\u>中。。。那也行:)谢谢。我没有先放for循环,然后在其中添加while循环“嵌套它”。您评论al.contain(数字)只是询问al是否持有数字。。。这对我来说是新鲜事。是否询问是否已经使用了某个号码?例如,如果用户输入2两次,如果他们这样做,将导致错误消息?@ZachBeck no,contain方法实际上是指它所调用的内容(数组列表是否包含元素),它只返回您传入的元素是否在数组列表中。它不会抛出错误消息,如果元素(
number
在您的例子中)不在array list.hmm中。因为当我使用它时会发生错误。“方法contain(int)对于numberInput.inputNumbers(numberInput.java:30)at numberInput.main(numberInput.java:15)”的类型ArrayList是未定义的。啊,明白了。谢谢。
int[] numArray = new int[];
numArray = al.toArray(new int[0]);