Java 我需要一个循环来询问用户5次1到10之间的数字
在这个函数中,我需要一个循环,要求用户输入5个介于1和10之间的数字,并将这些数字存储在数组调用numArray中。我需要对用户的输入进行验证。我知道我需要另一个循环,允许用户输入5个不同的数字,但我不知道放在哪里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
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]);