Forums Développement Multimédia

Aller au contenu

Comment réduire le nombre de plusieurs vérifications identiques

code

1 réponse à ce sujet

#1 vegetalain

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 28 January 2016 - 14:42 PM

Bonjour... c'est toujours mon chatbot "maison" :) Alors voilà j'ai fait un truc qui fonctionne (en test) seulement il y a des redondances...

J'ai un champ texte et un bouton. Si un mot particulier est repéré dans le champ texte on est orienté vers une fonction que l'on appellera "gogogo()".

Une fois dans cette fonction "gogogo()", un "switch" est mis en route et l'on passe de "case 0" à "case 1", de "case 1" à "case 2", etc...

Alors j'ai besoin de repérer des infos en case0 :
si le mot "voiture" existe
si le mot "mouton" existe
si le mot "chocolat" existe

Mais aussi en case1 :
si le mot "voiture" existe
si le mot "mouton" existe
si le mot "chocolat" existe

Voilà ma question, y'a-t-il une façon plus "courte" de faire ce qui suit :


case 0 :
if blablabla voiture {fait vroum;}
if blablabla mouton {fait bêêê;}
if blablabla chocolat {fait crunch;}
break;

case 1 :
if blablabla voiture {fait vroum;}
if blablabla mouton {fait bêêê;}
if blablabla chocolat {fait crunch;}


case 2 :
if blablabla voiture {fait vroum;}
if blablabla mouton {fait bêêê;}
if blablabla chocolat {fait crunch;}

break;
 

Ca fait beaucoup de fois les mêmes instructions donc, je me posais la question...

Merci de vos avis et conseils.

#2 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 28 January 2016 - 17:39 PM

Bonjour Alain,

Tu peux déjà faire une mini fonction :
swich
   case 0 :
          fonction_blabla();
   break;
   case 1 :
          fonction_blabla();
   break;
   case 2 :
          fonction_blabla();
   break;
fin du swich

functon fonction_blabla():void {
          if blablabla voiture {fait vroum;};
          if blablabla mouton {fait bêêê;};
          if blablabla chocolat {fait crunch;};
}

Maintenant, ce code montre clairement que tous les cas sont identiques. On doit rater quelque chose ou alors ton exemple n'est pas significatif…

Pour infos sur le swich, on ne sait jamais si c'est ce qui t'intéresse : le break n'est pas obligatoire.
Tu peux donc "orienter" plusieurs cas sur le même code :
 swich (valeur) {
   case 0 :
   case 1 :
   case 2 :
          if blablabla voiture {fait vroum;};
          if blablabla mouton {fait bêêê;};
   break;

   case 3 :
   case 4 :
          if blablabla chocolat {fait crunch;};
   break;
}

La situation peut même être encore plus pointue : un cas peut exécuter du code, et, s'il n'est pas suivi d'un break; exécuter le code du cas suivant.
Dans cet exemple : le cas zéro fait vroum et bêêê, tandis que les cas un et deux ne font que bêêê…

 swich (valeur) {
   case 0 :
          if blablabla voiture {fait vroum;};
   case 1 :
   case 2 :
          if blablabla mouton {fait bêêê;};
   break;
}

C'est toute la richesse du swich/case par rapport au if. Pas facile à maîtriser (faut dire que les cas ou c'est utile sont rares), mais puissant.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)