Optimisation

Signaler
Messages postés
2
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
11 février 2005
-
Messages postés
2
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
11 février 2005
-
Salut j aimerai savoir s il y a moyen d optimiser ca avec un switch case je le maitrise moyenement si quelqu un pourait m aider

if (iMat[iPosy][iPosx] == 0 && iMouvOk==0)
{
iMat[iPosy][iPosx]+= 3;
}
else if (iMat[iPosy][iPosx] == 1)
{
iMat[iPosy][iPosx]++;
}
else if (iMat[iPosy][iPosx] == 2 && iMouvOk==0)
{
iMat[iPosy][iPosx] ++;
iPoints++;
}
else if (iMat[iPosy][iPosx] == 3 && iMouvOk==0)
{
iMat[iPosy][iPosx]++;
}

Merci d avance

3 réponses

Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Salut,

Avec un switch tu obtiendra guere mieux, puisque tu as des conditions mulitples.

Par contre tu peux regrouper les if qui donne le meme resultat, a savoir :

if (iMat[iPosy][iPosx] == 0 && iMouvOk==0)
{
iMat[iPosy][iPosx]+= 3;
}
else if(iMat[iPosy][iPosx] == 1 || iMat[iPosy][iPosx] == 3 && iMouvOk == 0)
{
++iMat[iPosy][iPosx];
}
else if (iMat[iPosy][iPosx] == 2 && iMouvOk==0)
{
iMat[iPosy][iPosx] ++;
iPoints++;
}

mais dans ton cas ca n'apporte pas grand chose, et la decomposition comme tu as fait amelior la lisibilite de ton code.

Oto
Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008
1
essai ça mais c'est pas le bout du monde!



switch(iMat[iPosy][iPosx])

{

case 0 :

if(!iMouvOk)

iMat[iPosy][iPosx]+= 3;

break;

case 2:

if( !iMouvOk )

iPoints++;

//pas de break ici

case 3 :

case 1 :

iMat[iPosy][iPosx] ++;

break;

}
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
Messages postés
2
Date d'inscription
vendredi 11 février 2005
Statut
Membre
Dernière intervention
11 février 2005

Merci beaucoup a vous deux et a la prochaine Votre aide m'a été précieuse

a+