[JAVA] if(...) {...return;} Obligatoire ?
hyper
-
le père -
le père -
Bonjour,
dans l'implémentation d'une des méthode que je bidouille, j'ai plusieur if successif mais pas imbriqué.
mon code --------------------------
public void addSort (String toAdd) {
Node aPlacer = new Node ();
aPlacer.element = toAdd;
if (first==null) {first=aPlacer;return;}
if (toAdd.compareTo(first.element)<0){
aPlacer.next = first;
first = aPlacer;return;}
if (toAdd.compareTo(first.element)>=0){
Node current=new Node ();
current=first;
try {
while (toAdd.compareTo(current.next.element)>=0){
current=current.next;}
aPlacer.next = current.next;
current.next = aPlacer;return;
}catch (NullPointerException e) {current.next=aPlacer;}
}
}
------------------
sans ces return placés en fin de if,...ça foire.
Le programme exécute les if succèssivement !? Comment cela ce fait-il ?
Pouvez-vous m'éclairer ?
merci
dans l'implémentation d'une des méthode que je bidouille, j'ai plusieur if successif mais pas imbriqué.
mon code --------------------------
public void addSort (String toAdd) {
Node aPlacer = new Node ();
aPlacer.element = toAdd;
if (first==null) {first=aPlacer;return;}
if (toAdd.compareTo(first.element)<0){
aPlacer.next = first;
first = aPlacer;return;}
if (toAdd.compareTo(first.element)>=0){
Node current=new Node ();
current=first;
try {
while (toAdd.compareTo(current.next.element)>=0){
current=current.next;}
aPlacer.next = current.next;
current.next = aPlacer;return;
}catch (NullPointerException e) {current.next=aPlacer;}
}
}
------------------
sans ces return placés en fin de if,...ça foire.
Le programme exécute les if succèssivement !? Comment cela ce fait-il ?
Pouvez-vous m'éclairer ?
merci
A voir également:
- [JAVA] if(...) {...return;} Obligatoire ?
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
3 réponses
Bonjour Hyper,
Le return nne doit pas être utilisé puisque ta méthode ne retourne rien (void).
Le probème viendrait plutôt de là :
first=aPlacer;
Mais on ne peut difficilement t'aider puisque l'on ne sait pas comment est implémenté Node ... et d'où vient first ...
Bonne année 2010.
Le return nne doit pas être utilisé puisque ta méthode ne retourne rien (void).
Le probème viendrait plutôt de là :
first=aPlacer;
Mais on ne peut difficilement t'aider puisque l'on ne sait pas comment est implémenté Node ... et d'où vient first ...
Bonne année 2010.
J'pense que c'que tu cherches en fait c'est le else if :
if (first==null) {first=aPlacer;}
else if (toAdd.compareTo(first.element)<0){
aPlacer.next = first;
first = aPlacer;}
else if (toAdd.compareTo(first.element)>=0){
Node current=new Node ();
current=first;
try {
while (toAdd.compareTo(current.next.element)>=0){
current=current.next;}
aPlacer.next = current.next;
current.next = aPlacer;
}catch (NullPointerException e) {current.next=aPlacer;}
De cette manière, si le premier if est lu, il ne passera pas dans les autres
if (first==null) {first=aPlacer;}
else if (toAdd.compareTo(first.element)<0){
aPlacer.next = first;
first = aPlacer;}
else if (toAdd.compareTo(first.element)>=0){
Node current=new Node ();
current=first;
try {
while (toAdd.compareTo(current.next.element)>=0){
current=current.next;}
aPlacer.next = current.next;
current.next = aPlacer;
}catch (NullPointerException e) {current.next=aPlacer;}
De cette manière, si le premier if est lu, il ne passera pas dans les autres
Bonjour
Le problème venait de là :
first = aPlacer
Quand tu fais ça, tu changes le first, qui devient la même chose que toAdd
donc dans le test suivant if (toAdd.compareTo(first.element)>=0) il y a égalité et il te rend 0 -> vrai
Le return et le else sont deux moyens de t'en sortir aussi valables l'un que l'autre, à toi de choisir
Le problème venait de là :
first = aPlacer
Quand tu fais ça, tu changes le first, qui devient la même chose que toAdd
donc dans le test suivant if (toAdd.compareTo(first.element)>=0) il y a égalité et il te rend 0 -> vrai
Le return et le else sont deux moyens de t'en sortir aussi valables l'un que l'autre, à toi de choisir