我正在尝试编写一个应用程序,它将使用随机数填充数组。在我尝试在populateArray方法中输入for循环之前,一切似乎都能正常工作。
import java.util.Random;
public class PerformanceTester {
//takes an empty array, but the size must be allocated BEFORE passing
//to this function. Function takes a pre-allocated array and input size.
public static int[] populateArray(int[] inputArray, int n) {
//Create the number generator
Random generator = new Random();
int length = inputArray.length;
System.out.println("Inputted array is length: " + length);
for (int i = 0; i == length; i++) {
// for debugging purposes: System.out.println("For loop entered.");
int random = generator.nextInt((2 * n) / 3);
// for debugging purposes: System.out.println("Adding " + random + " to the array at index " + i);
inputArray[i] = random;
}
return inputArray;
}
public static void main(String[] args) {
int[] input;
input = new int[10];
int[] outputArray = populateArray(input, 10);
System.out.print(outputArray[0]);
}
}
如我的输出所示,编译器清楚地输入方法(当在第29行调用时)但似乎在达到for循环时停止所有执行。我100%确定我的循环有正确的初始化和终止操作符,因为长度等于十。
老实说,我很难过,但就像大多数情况一样,我确信这是一个非常简单的答案。我的输出如下:
Inputted array is length: 10
0 //The array is not populated with numbers, so all indexes of the array return zero.
非常感谢任何和所有帮助。
答案 0 :(得分:7)
当然你的意思是你的循环测试是正确的吗?
for (int i = 0; i < length; i++) {
否则,i == length
永远不会成立(除非length == 0
)并且永远不会进入循环。
您也可以使用:
for (int i = 0; i != length; i++) {
答案 1 :(得分:1)
您应该在终止条件中写i<=length
而不是i==length
...因为首先它将变量i
作为0
启动,然后检查终止条件({ {1}}就像你的情况一样),只有当它变为真时才会进入循环。
答案 2 :(得分:0)
我认为你打算写#34;我&lt;长度&#34;作为你的循环的条件。
答案 3 :(得分:0)
您的for循环条件不是您想要的。我&lt;长度是你可能想要的。
它也与java编译器无关。