【问题标题】:How to terminate scanner in java when filling an array填充数组时如何在java中终止扫描仪
【发布时间】:2016-03-04 11:02:21
【问题描述】:
我正在尝试创建一个最大长度为 20 的数组,只要它在该范围内,它就可以在每个位置接受任何数字,但我无法弄清楚。
for(int i=0; i< MAX; i++)
{
array[i] = input.nextDouble();
}
这会填充数组,但我必须输入最大输入数并且不能简单地结束,例如 5 个输入。有没有办法解决这个问题?
【问题讨论】:
标签:
java
arrays
java.util.scanner
【解决方案1】:
您可以使用扫描仪检查是否有额外的[适当的]输入hasNextDouble():
for (int i = 0; i < MAX && input.hasNextDouble(); i++) {
array[i] = input.nextDouble();
}
【解决方案2】:
你就不能这样吗:
System.out.println("Enter the number of inputs:");
double MAX=input.nextDouble();
double[] array=new double[(int)MAX];
for(int i=0; i< MAX; i++)
{
array[i] = input.nextDouble();
}
【解决方案3】:
您可以向用户询问 MAX 值。代码看起来像这样 -
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
System.out.println("Enter the MAX value : ");
int MAX = input.nextInt();
double[] array = new double[MAX];
for (int i = 0; i < MAX; i++) {
array[i] = input.nextDouble();
}
}
}