从理论上讲,我总是遇到return嵌套在两个for循环中的语句。
编译器不同意并且需要循环return外的语句for。我想知道一种优雅的方法来优化此方法,这超出了我目前的理解,并且我尝试的break实现似乎都没有用。
附带的是一个赋值方法,该赋值方法生成随机整数,并返回循环进行的迭代直到找到第二个随机整数为止,该迭代在作为int参数传递到该方法的范围内生成。
private static int oneRun(int range) {
int[] rInt = new int[range+1]; // Stores the past sequence of ints.
rInt[0] = generator.nextInt(range); // Inital random number.
for (int count = 1; count <= range; count++) { // Run until return.
rInt[count] = generator.nextInt(range); // Add randint to current iteration.
for (int i = 0; i < count; i++) { // Check for past occurence and return if found.
if (rInt[i] == rInt[count]) {
return count;
}
}
}
return 0; // Never reached
}
oneRun(0)),您会看到您很快达到了无法访问的水平return
nextInt引发异常range < 0的唯一返回返回值的情况是range == 0
while(true)而不是索引循环。这告诉编译器循环将永远不会返回。