13Fermer15
ZephLe 29/06/2008 à 12:50
Tiens ça me fait penser à une question qui diverge un peu du sujet mais qui ne mérite pas son propre topic : est-ce qu'il existe une solution élégante et générique (pas limitée au Ti-Basic) pour le genre de problème qu'on voit dans le post ./12, à savoir :

test = true

while (test)
{
    test = expression

    if (test)
    {
        ...
    }
}

On peut dans certains cas et pour certains langages (C par exemple) déplacer l'affectation dans le while, mais pour peu qu'elle soit un peu longue c'est assez laid, et dans d'autres langages ça n'est pas toujours possible. Du coup, comment réécrire ce bout de code pour éviter deux tests consécutifs sur la même variable (vu que durant l'exécution, ces deux tests seront toujours égaux sauf au dernier tour de boucle, donc ça bouffe pas mal de temps pour pas grand chose).

On peut parfois remplacer "test = true" par "test = expression", et déplacer la deuxième affectation tout en bas de la boucle ce qui permet d'éliminer le "if", mais ça n'est intéressant que si "expression" est courte sinon ça duplique un gros paquet de code.