运行此代码时出现此错误
private static List<Integer> array(int num) {
List<Integer> value = new ArrayList<>();
while (num != 1) {
if(num % 2 == 0) {
value.add(num + 2);
}else {
value.add(num * 3 + 1);
}
}
System.out.println(value);
return value;
}
我能得到什么错的解释吗?
答案 0 :(得分:5)
您有一个无限循环。每次迭代都会添加到列表中,直到您运行OutOfMemory。您需要在循环过程中更改 num ,以使其在某点变为 1 ,从而使循环结束。
答案 1 :(得分:2)
您的while条件永远不会等于false,因此循环无限循环。正如shmosie所说,您永远都不会修改<dependencies>
<!-- https://mvnrepository.com/artifact/org.twitter4j/twitter4j-core -->
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>4.0.7</version>
</dependency>
</dependencies>
,所以也许要看一下num的修改,或者对其进行一些操作,以使它实际上等于1,以使循环停止