Switch(dir){ - Java - Programmation
Marsh Posté le 11-05-2004 à 07:28:44
c'est normal, tu ne traite pas tous les cas possibles, rajoute une clause default dans ton switch. dans ce default tu peux lancer une exception comme quoi le parametre n'est pas valide, ou autre chose, mais tu dois etre exhaustif dans ce cas-ci sinon ta signature de methode n'est pas respectee.
Marsh Posté le 11-05-2004 à 07:38:42
en clair ? jmets un
case default :
break;
?
c'est ca ou alors jme plante totalement ?
Marsh Posté le 11-05-2004 à 08:54:54
non ca change rien ici.
le probleme c'est pas qu'il faille un default dans ta clause switch, le probleme c'est que tu declres ta fonction comme renvoyant un int, et si l'int passe au travers de ton filtrage, ben ta methode renvoie rien, donc le compilateur il est pas content, ce qui est normal.
en consequence, il faut renvoyer un int (apres ton switch ou dans une clause default a l'interieur du switch) ou alors tu lances une exception comme quoi le parametre est pas valide (par exemple)
Marsh Posté le 11-05-2004 à 10:18:45
Petit conseil de codage : toutes les clauses de ton switch renvoient la même variable :
ça t'évitera bien des problèmes en cas d'erreur.
De manière générale, il est bon de n'avoir qu'un point de retour d'une méthode.
Marsh Posté le 11-05-2004 à 12:16:20
mbl a écrit : en clair ? jmets un |
hors sujet, mais c'est
Code :
|
Marsh Posté le 11-05-2004 à 12:29:37
nraynaud a écrit : hors sujet, mais c'est
|
sans oublier le break apres chaque case quand meme
Marsh Posté le 11-05-2004 à 12:39:00
the real moins moins a écrit : sans oublier le break apres chaque case quand meme |
me parle pas de cette merde, j'en ai oublié un l'autre fois.
maintenant, j'ai plutôt tendance à utiliser une hashMap qu'un switch tellement c'est la merde syntaxiquement et au debug. En plus ça fait des fonctions de 300 lignes.
Marsh Posté le 11-05-2004 à 12:40:46
bah clair
(sinon moi je fous meme un block apres chaque case, je pige pas pq c'est pas la syntaxe par defaut. ça me permet d'isoler mes variables
sinon
|
n'est pas valide parce que "s" est défini deux fois
Marsh Posté le 11-05-2004 à 12:44:30
gfive a écrit : switch, cai le mal, comme dirait l'autre. |
oué, mais j'ai tendance à le garder pour les petits automates. ça fait des trucs indébuggables, mais assez compact.
Marsh Posté le 11-05-2004 à 12:46:54
Oui, ça se comprend...Y'a toujours des entorses à la philosophie objet qu'on peut considérer comme admissibles, et c'est bien normal, sinon, on se ferait souvent chier pour pas grand chose...
Marsh Posté le 11-05-2004 à 12:50:10
En fait, j'aimerais avoir un générateur d'automates en ligne, comme il y a un générateur d'expressions rationelles, mais ça existe pas.
Marsh Posté le 11-05-2004 à 12:51:52
the real moins moins a écrit : je pige pas pq c'est pas la syntaxe par defaut. |
parce que ca vient du C, et que en C, à la compilation, ca se traduit quasi directement en assembleur et que dans le cas où tu mets pas de break ca évite un saut inutile.
Marsh Posté le 11-05-2004 à 07:07:54
Bonjour tout le monde !
eclipse me met une erreur sur l'accolade apres un switch(dir),
je sais pas trop d'ou sa vient et sa m'embete vu que c'est la derniere erreur de mon projet
si quelqu'un avait la solution =) sa m'aiderai bien !
merci les gens
www.mabulle.fr.st/PasCavalier.java
---------------
-3dB