我遇到了语法错误,即使通过搜索也无法弄清楚。
问题出在第12行,我一直在尝试使用递归。
完整的错误是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error on token ")", Statement expected after this token
at Problem_14.main(Problem_14.java:12)
代码是:
import java.util.HashMap;
import java.util.Map;
public class Problem_14 {
public static long sequence(long o) {
long n = 0;
if (o % 2 == 0) n = o/2; sequence(n);
if (o % 2 != 0) n = 3*o + 1; sequence(n);
return n;
}
public static void main(String[] args) {
Map<String, Long> chain = new HashMap<String, Long>();
//Iterative sequence
//n → n/2 (n is even)
//n → 3n + 1 (n is odd)
for (int i = 1; i < 1000000; i++) {
chain.put(String.valueOf(i), sequence(i));
}
}
}
我已经完成了所有建议,但没有效果。
最佳答案
无论如何,这看起来都不对劲。不应该:
if (o % 2 == 0) n = o/2; sequence(n);
是
if (o % 2 == 0) { n = o/2; sequence(n); }
关于java - token ")"出现语法错误,此 token 后应有语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23133510/