Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 通过扫描仪获取输入并仅使用for循环创建数组,而不是 私有静态int[]arr; 公共静态void inputarrays(){ 扫描仪扫描=新扫描仪(System.in); System.out.println(“数组的长度”); int x=scan.nextInt(); arr=新整数[x]; System.out.println(“数组的值”); 对于(int n=0;n_Java_Arrays - Fatal编程技术网

Java 通过扫描仪获取输入并仅使用for循环创建数组,而不是 私有静态int[]arr; 公共静态void inputarrays(){ 扫描仪扫描=新扫描仪(System.in); System.out.println(“数组的长度”); int x=scan.nextInt(); arr=新整数[x]; System.out.println(“数组的值”); 对于(int n=0;n

Java 通过扫描仪获取输入并仅使用for循环创建数组,而不是 私有静态int[]arr; 公共静态void inputarrays(){ 扫描仪扫描=新扫描仪(System.in); System.out.println(“数组的长度”); int x=scan.nextInt(); arr=新整数[x]; System.out.println(“数组的值”); 对于(int n=0;n,java,arrays,Java,Arrays,我查阅了如何编写代码以获取用户输入并创建如下数组: 看起来我的代码和链接上的代码一样,这意味着它应该正常工作。但是,当我输入数组的值时,扫描仪从不关闭。我尝试了scan.close(),但没有成功。此外,我不能将try&exception用于此项 此方法有效,请尝试: private static int[] arr; public static void inputarrays() { Scanner scan = new Scanner(System.in); Syste

我查阅了如何编写代码以获取用户输入并创建如下数组:


看起来我的代码和链接上的代码一样,这意味着它应该正常工作。但是,当我输入数组的值时,扫描仪从不关闭。我尝试了
scan.close()
,但没有成功。此外,我不能将try&exception用于此项

此方法有效,请尝试:

private static int[] arr;
public static void inputarrays() {
    Scanner scan = new Scanner(System.in);

    System.out.println("length of an array");

    int x = scan.nextInt();
    arr = new int[x];

    System.out.println("values of an array");
    for(int n = 0; n < x; x++) {
        arr[n] = scan.nextInt();
    }
}
私有静态int[]arr;
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“数组的长度”);
int x=scan.nextInt();
scan.nextLine();
arr=新整数[x];
System.out.println(“数组的值”);

对于(int n=0;n您在循环中使用了
n
,因此您必须选择
n++
,而不是
x++

private static int[] arr;
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("length of an array");
    int x = scan.nextInt();
    scan.nextLine();
    arr = new int[x];
    System.out.println("values of an array");
    for(int n=0; n<x; n++){
        arr[n]=scan.nextInt();
        scan.nextLine();
    }
}
私有静态int[]arr;
公共静态void inputarrays(){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“数组的长度”);
int x=scan.nextInt();
arr=新整数[x];
System.out.println(“数组的值”);
对于(int n=0;n

它应该是这样工作的。

将x++更改为n++我更改了它,但扫描仪仍然没有停止添加这一行:
scan.nextLine();
在每次
scan.nextLine()之后
谢谢您的编辑,下次它不起作用时,我会按照格式来做。我应该在方法内部创建一个新数组,而不是在数据字段中声明它吗?我必须在数据字段中声明arr,这就是为什么我将它放在方法外部。如果我这样做,它会保留错误吗?
nextLine()
s在这里是多余的。
arr
是在第一行的问题中声明的。@Ivar我也这么认为,但我在没有nextLine()的情况下运行代码的2次中有1次;在InteliJ中,循环不会停止。@Ivar在将输入与nextLine()和nextInt()混合时肯定会有问题。在只有nextLine()的情况下我也从来没有遇到过任何问题。但这可能会发生,只是为了安全起见……这个答案没有其他答案中没有提到过的。
private static int[] arr;
public static void inputarrays() {
    Scanner scan = new Scanner(System.in);

    System.out.println("length of an array");

    int x = scan.nextInt();
    arr = new int[x];
    System.out.println("values of an array");
    for(int n = 0; n < x; n++) {
        arr[n] = scan.nextInt();
    }
}