Eviter les "break;" en codage

Résolu
youdssef Messages postés 107 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 21 avril 2012 - 20 janv. 2012 à 20:01
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 23 janv. 2012 à 07:41
Bonjour ,

je vais essayer de vous expliquer mon soucis qui concerne le code d une classe dont le contenu est sans erreurs et fonctionne parfaitement , sauf que Mr le proff indique comme quoi il n'est pas du tout un fun des "break";
et franchement j'arive pas a trouver une alternative aces break;
prière de m'aider ;le code en question:



private boolean diagonal2(int spalte, int zeile, char zeichen) {

int aktuelle_zeile = zeile - 1;
int aktuelle_spalte = spalte + 1;
int i = 1;
while (aktuelle_zeile >= 0 && aktuelle_spalte < spalten) {
if (spielfeld[aktuelle_zeile][aktuelle_spalte] != zeichen)
break;
aktuelle_zeile--;
aktuelle_spalte++;
i++;

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
23 janv. 2012 à 07:41
Je dirais que ce n'est pas extra, en général, on préfère mettre le return à la fin de la fonction et pas en plein milieu :

while (aktuelle_zeile >= 0 && spielfeld[aktuelle_zeile][spalte] != zeichen) {
   aktuelle_zeile--;
   i++;
}
return aktuelle_zeile==0
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
21 janv. 2012 à 07:17
Bonjour,


C'est tout simple :

private boolean diagonal2(int spalte, int zeile, char zeichen) { 
   int aktuelle_zeile = zeile - 1; 
   int aktuelle_spalte = spalte + 1; 
   int i = 1; 
   while (aktuelle_zeile >= 0 && aktuelle_spalte < spalten && spielfeld[aktuelle_zeile][aktuelle_spalte] != zeichen) {
      aktuelle_zeile--; 
      aktuelle_spalte++; 
      i++;
0
youdssef Messages postés 107 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 21 avril 2012
22 janv. 2012 à 03:32
Bonjour ,
merci avant tout pour ta reponse"julien39" , mais ca n a pas marché:S:S
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
22 janv. 2012 à 12:50
Comment ca ? Tu as une exception ou le traitement ne fais pas ce que tu veux.

Le principe est le suivant, pour arrêter ta boucle, il faut que la condition dans le while ne soit plus vérifiée. Ce n'est pas ce que j'ai fais sur ton code ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
youdssef Messages postés 107 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 21 avril 2012
23 janv. 2012 à 00:08
""julien39"" merci infiniment encore a nouveau , j ai pu le faire et le suivan sera le code convenant :



while (aktuelle_zeile >= 0) {
if (spielfeld[aktuelle_zeile][spalte] != zeichen){
return false;
} else {
aktuelle_zeile--;
i++;
}
}
0