如何在for循环中的数组中存储值?

时间:2015-07-19 16:53:18

标签: java arrays for-loop

我试图将一堆数字作为输入,并将其作为第一个未排序的数组输出,然后输出一个排序的数组。如何在for循环中将输入的值存储在数组中?现在,它只存储输入的最后一个值。

String strNumberOfValues, strValue;
int intNumberOfValues, intValue;
 Scanner input = new Scanner(System. in );
System.out.println("Please enter the number of values you would like to enter");
strNumberOfValues = input.nextLine();
intNumberOfValues = Integer.parseInt(strNumberOfValues);
 for (int i = 0; i < intNumberOfValues; i++) {
    System.out.println("Please enter value for index value of " + i);
    strValue = input.nextLine();
    intValue = Integer.parseInt(strValue);
    for (int j = 0; j == 0; j++) {
        int[] intArray = {
            intValue
        };
        System.out.println("Here is the unsorted list: \n" + Arrays.toString(intArray));

3 个答案:

答案 0 :(得分:4)

在循环开始之前声明并初始化数组:

intNumberOfValues = Integer.parseInt(strNumberOfValues);
int[] intArray = new int[intNumOfValues];
for (int i = 0; i < intNumberOfValues; i++) {
    System.out.println("Please enter value for index value of " + i);
    strValue = input.nextLine();
    intArray[i] = Integer.parseInt(strValue);
}
System.out.println("Here is the unsorted list: \n" + Arrays.toString(intArray));
. . .

请注意,你的内循环是无用的。它只执行一次,循环中不使用循环索引j。它所做的只是限制intArray声明的范围,因此即使对于打印数组值的行也不定义符号。顺便说一句,那个print语句不应该在 all 获得输入值之前执行,这就是为什么我把它移到我的答案中的外部循环之后。 (另请注意,此处不再需要变量intValue,除非在别处使用,否则可以从程序中删除。)

作为一种风格,我还建议你避免使用变量类型作为变量名的前缀。

答案 1 :(得分:0)

您必须先声明数组,然后根据索引分配值。

String strNumberOfValues, strValue;
int intNumberOfValues, intValue;

Scanner input = new Scanner(System. in );
System.out.println("Please enter the number of values you would like to enter");

strNumberOfValues = input.nextLine();
intNumberOfValues = Integer.parseInt(strNumberOfValues);

int [] intArray = new int[intNumberOfValues];

for (int i = 0; i < intNumberOfValues; i++) {
   System.out.println("Please enter value for index value of " + i);
   strValue = input.nextLine();
   intValue = Integer.parseInt(strValue);
   intArray[i] = intValue;
}
    System.out.println("Here is the unsorted list: \n" + Arrays.toString(intArray));

答案 2 :(得分:0)

在你的内部for循环中,每次都重新声明数组,因此实际上只保存了最后一个值。您必须预先使用用户输入的大小声明数组,然后在单个for循环中按索引填充它:

String strNumberOfValues, strValue;
int intNumberOfValues, intValue;
Scanner input = new Scanner(System. in );
System.out.println("Please enter the number of values you would like to enter");
strNumberOfValues = input.nextLine();
intNumberOfValues = Integer.parseInt(strNumberOfValues);
int[] intArray = new int[intNumberOfValues];

for (int i = 0; i < intNumberOfValues; i++) {
    System.out.println("Please enter value for index value of " + i);
    strValue = input.nextLine();
    intValue = Integer.parseInt(strValue);
    intArray[i] = intValue;
}
System.out.println("Here is the unsorted list: \n" + Arrays.toString(intArray));