我试图将一堆数字作为输入,并将其作为第一个未排序的数组输出,然后输出一个排序的数组。如何在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));
答案 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));