Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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/1/list/4.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
从用户处获取10个数字并使用Java将其存储在一个数组中_Java - Fatal编程技术网

从用户处获取10个数字并使用Java将其存储在一个数组中

从用户处获取10个数字并使用Java将其存储在一个数组中,java,Java,我试图通过从用户那里获取10个数字并将它们添加到一个数组中来进行实践应用。这是我的密码 public static void getNumber(){ for(int i=0; i<10; i++){ Scanner scanner = new Scanner(System.in); System.out.println("Enter number " + i ); int NumbersArray[] = {};

我试图通过从用户那里获取10个数字并将它们添加到一个数组中来进行实践应用。这是我的密码

public static void getNumber(){
        for(int i=0; i<10; i++){
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter number " + i );
        int NumbersArray[] = {};
        int no1 = scanner.nextInt();
        NumbersArray[i] = no1;
        System.out.println(NumbersArray);
        }
根据我的格式,第8行是

getNumber();
NumbersArray[i] = no1;
根据我的格式,第17行是

getNumber();
NumbersArray[i] = no1;

请帮助

您正在分配大小为0的数组

此外,如果要分配阵列10次,请将其移出循环

另外,您要创建一个新的Scanner实例10次,只需创建一次

public static void getNumber(){
    int size = 10;
    int NumbersArray[] = new int[size];
    Scanner scanner = new Scanner(System.in);
    for(int i=0; i<size; i++){
        System.out.println("Enter number " + i );
        int no1 = scanner.nextInt();
        NumbersArray[i] = no1;
        System.out.println(NumbersArray);
    }
}
publicstaticvoidgetnumber(){
int size=10;
int NumbersArray[]=新的int[size];
扫描仪=新的扫描仪(System.in);
对于(inti=0;i在这一行:

int NumbersArray[] = {};
您已将其显式初始化为空数组;它相当于
new int[0]
。您不能在这样的数组中存储任何内容。存储某些内容不会自动为该元素分配数组中的内存

在使用数组之前,必须适当调整数组的大小,因为Java数组无法调整大小

int[] numbersArray = new int[10];
尽管
int NumbersArray[]
是完全合法的,但按照惯例,括号放在数据类型上,变量名的第一个字母是小写的


此外,要正确打印数组。

错误解释了问题:您试图访问索引超出边界的数组。在第17行,您在第一次迭代中执行以下操作,其中
i=0

NumbersArray[0] = no1;
但是,
NumbersArray
被实例化为:

int NumbersArray[] = {};

以上意味着您正在创建一个空数组,没有分配给它的空间,而是考虑初始化一些空间:

int[] numbersArray = new int[10];

或更常见地,考虑使用AND并添加元素:

List<Integer> numbers = new ArrayList<>();

for(int i=0; i<10; i++){
    ...
    numbers.add(no1);
}
List number=new ArrayList();

对于(int i=0;i,您的问题是您打算将de int value指定为数组变量

首先,您不需要在每次迭代中创建新的Scanner对象

Scanner scanner = new Scanner(System.in);
您需要在循环外声明一个int数组,并告诉他它的长度是10:

int[] numbersArray = new Int[10];
你不应该使用:

System.out.println(NumbersArray);
因为它打印的是it数组的引用标识符,而不是it内容,所以您必须使用它:

for(int i=0; i < numbersArray.length; i++){
    System.out.println(numbersArray[i]);
}
for(int i=0;i
最后的代码是下一个:

int[] numbersArray = new Int[10];

Scanner scanner = new Scanner(System.in);

for(int i=0; i<10; i++){


    System.out.println("Enter number " + i );

    int number = scanner.nextInt();

    numbersArray[i] = number;
}

System.out.println("The numbers are:" );

for(int i=0; i < numbersArray.length; i++){
    System.out.println(numbersArray[i]);
}
int[]numbersaray=新的int[10];
扫描仪=新的扫描仪(System.in);

对于(int i=0;iDavid Yee和Rgetman完美地回答了你的问题。我只想向你展示如何在不使用任何数组的情况下添加10个数字

public static void getNumber(){
       Scanner scanner = new Scanner(System.in);
       int no1=0;
       for(int i=0; i<3; i++){
           System.out.println("Enter number " + (i+1) );
           no1 += scanner.nextInt();
       }
       System.out.println("Sum = "+no1);
   }
publicstaticvoidgetnumber(){
扫描仪=新的扫描仪(System.in);
int no1=0;

对于(int i=0;iAn数组是java中的一个对象,因此您需要声明一个新对象。对于初学者,请尝试
int[]NumbersArray=new int[10];
。此外,我鼓励您改进缩进样式谢谢您的回答。我会记住这一点。您也可以使用
System.out.println(Arrays.toString(NumbersArray))
谢谢你的回答谢谢你的回答谢谢你的回答谢谢你的回答谢谢你的回答。但是我想将它们存储在一个地方,而不是添加它们。这就是我使用数组的原因。不过,为了添加,我会记住这一点。