2015-09-12 1 views
-1

J'essaye de renvoyer un nombre entier dans Java mais il me donne l'erreur de types incompatibles.erreur de type incompatible. Java?

public int getNubers(){ 
if (counter.getValue()% 9 == 0) 
{ 
    return "counter.getValue/9"; 
} 
} 
+1

public int return int chaîne non pas ... chaîne publique return Chaîne –

+0

Je me demande ce qu'est un "nuber". Est-ce un peu comme un chiffre, mais avec le «m», peu importe ce que cela signifie? – Andreas

Répondre

0

"counter.getValue/9" est une chaîne non int. il devrait être

return counter.getValue()/9; 
+0

Merci pour l'aide. – Patrick

+0

Vous vouliez dire '/', pas '%', n'est-ce pas? – Andreas

+0

o oui ... typo: P édition. –

5

Votre fonction a un type de retour déclaré de int, mais vous essayez de retourner une chaîne. Donnez à ce essayer:

public String getNubers(){ 
if (counter.getValue()% 9 == 0) 
{ 
    return "counter.getValue/9"; 
} 
return "OOPS"; //gotta return something here. 
} 

Sinon, je pense que vous en train d'essayer de le faire:

public int getNubers(){ 
if (counter.getValue()% 9 == 0) 
{ 
    return counter.getValue()/9 ; 
} 
return -1; //bloop bleep 
} 
+1

Merci pour l'aide. – Patrick

+0

'hans lepoeter' a raison dans sa réponse. Ce code ne compilera pas, car il n'y a pas d'instruction 'return' après l'instruction' if'. – Andreas

+0

@Andreas bon point. Code édité pour l'exhaustivité. – CollinD

1

Les deux réponses sont en partie mal de toute façon. Si vous avez une fonction qui retourne quelque chose, vous DEVRIEZ la retourner quoi qu'il arrive. Donc, simplement renvoyer l'entier au cas où la division renvoie un nombre entier n'est pas une option.

Vous pouvez affecter une valeur d'erreur si l'écart n'est pas un nombre entier, disons -1, puis le retourner à la fin de la fonction, ce qui signifie que la division ne renvoie pas un nombre entier.

Vous pouvez également lever une exception si la division n'aboutit pas à un nombre entier.

Bonne chance.

+0

Merci, c'est très utile. – Patrick