2010-02-08 7 views
2

Sooo Je vais avoir un problème avec ma fonction.fonction Java question Else

static int syracuse(int x){ 
    if (x%2==0){ 
     return x/2; 
    else{ 
     return 3*x+1; 
    } 
    } 
    } 

bien soo ma question est: si x est encore, le retour x/2 OU est x si étrange. renvoie 3x + 1. Mais quand je tente de compiler Java me dit que (« autre » avec « si ») Je ne sais pas quoi faire: \

pourquoi aurais-je besoin d'un autre si?

+4

Utilisez un EDI comme Eclipe. Rend beaucoup plus facile de repérer des accolades incompatibles. – Thilo

+0

Si vous appelez cela souvent, vous voudrez peut-être faire une opération AND pour une augmentation énorme des performances. –

+0

@John T: vraiment? – Thilo

Répondre

6

votre problème est des accolades incompatibles:

static int syracuse(int x){ 
    if (x%2==0){ 
     return x/2; 
    } else { 
     return 3*x+1; 
    } 
} 
2

Vos accolades sont mal placés.

static int syracuse(int x){ 
    if (x%2==0){ 
     return x/2; 
    } 
    else{ 
     return 3*x+1; 
    } 
} 

PS: Je ne suis pas un expert en java, donc je ne suis pas sûr x/2 peut être jeté comme int sur le retour

+0

re int: ce sera déjà un int. – pstanton

2
if (x%2==0){ 
     return x/2; 

changement:

if (x%2==0){ 
     return x/2; 
}