2012-02-06 4 views
-1

Mon code fonctionnait parfaitement avant et maintenant il ne compile plus. J'ai cherché la déclaration de retour manquant pendant un certain temps, mais ne peut toujours pas trouver ... Voici le code:Erreur: instruction de retour manquante

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

est-il une raison particulière pour laquelle vous n'indentez pas votre code? Vous seriez étonné combien facilement vous seriez en mesure de repérer l'erreur. (Aussi, ce n'est pas du JavaScript pour commencer ...) – Tomalak

+0

(Pour les éditeurs: n'essayez pas d'améliorer la question en mettant le code en retrait.) Le fait que le code ne soit pas indenté est l'ensemble du * point * de la question – Tomalak

+1

Je vais indenter mon code à partir de maintenant ... Merci – Nicolas

Répondre

2

ne devrait pas le dernier retour être une accolade fermante plus tard?

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

et, en note, vous pouvez arrêter la boucle for à la racine carrée de x.

i * i < x 

ou

i < sqrt(x) 

I mis à jour l'état dans le bloc de code en retrait.

+0

Merci pour l'aide !! – Nicolas

1

Il est facile de voir un problème si vous utilisez des indentations:

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