2012-02-06 117 views
-1

我的代码在以前完美工作,现在它不再编译。我已经寻找了一段时间缺少return语句,但仍无法找到它...以下是代码:错误:缺少return语句

private static boolean Prime(int x){   
for(int i=1;i<x;i++) 
{ 
if(x%i==0){ 
return false; 
} 
return true; 
} 
} 
} 
+5

有什么特别的原因,为什么你不缩进代码?你会惊讶地发现错误很容易。 (另外,这不是以JavaScript开始的......) – Tomalak 2012-02-06 23:10:56

+0

(对于编辑者:请不要尝试通过缩进代码来改进问题。代码不缩进的事实是问题的整个*点* ) – Tomalak 2012-02-06 23:30:44

+1

我会从现在开始缩进我的代码...谢谢 – Nicolas 2012-02-07 00:11:42

回答

2

不应该最后回报是一个后右大括号?

private static boolean Prime(int x){   
    for(int i=1;i*i<x;i++) 
    { 
     if(x%i==0){ 
      return false; 
     } 
    } 
    return true; 
} 

并且,作为附注,您可以停止x的平方根处的for循环。

i * i < x 

i < sqrt(x) 

我更新在缩进代码块中的条件。

+0

感谢您的帮助! – Nicolas 2012-02-07 00:11:17

1

可以很容易地看到一个问题,如果你使用缩进:

private static boolean Prime(int x) { 
    for (int i = 1; i < x; i++) { 
     if (x % i == 0) { 
      return false; 
     } 
     return true; 
    } 
} 
}