Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

quelle différence entre ces 2 codes

4 réponses
Avatar
dav
quelle est la différence entre ces 2 solutions :

1/ premier code

if mon_test = 1 then
truc = "michel"
exit sub
end if

truc = marie

2/ deuxieme code

if mon_test = 1 then
truc = "michel"
exit sub
else
truc = marie
end if

je pense que les 2 arrivent au même résultat mais quel est le plus
correct en code, et le plus rapide...
merci,
Bruno

4 réponses

Avatar
christophe-pasde
Bonjour,

Personellement j'utilise la première forme, je trouve ça plus clair.
Au niveau compile je sais pas si il y a une différence qui induit un
gain en rapidité.

Christophe


dav a écrit :
quelle est la différence entre ces 2 solutions :

1/ premier code

if mon_test = 1 then
truc = "michel"
exit sub
end if

truc = marie

2/ deuxieme code

if mon_test = 1 then
truc = "michel"
exit sub
else
truc = marie
end if

je pense que les 2 arrivent au même résultat mais quel est le plus
correct en code, et le plus rapide...
merci,
Bruno


Avatar
ng
Salut,

En fait il faudrait une 3ème form sans le exit sub :

If mon_test = 1 Then
Truc = "michel"
Else
Truc = "marie"
End If

Sauf si tu as besoin du exit sub pr la suite, ms ce n'était pas précisé.

En outre, si mon_test est un booléan ce code sera bcp plus rapide (70%
environ) :
If mon_test Then
Truc = "michel"
Else
Truc = "marie"
End If

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

dav wrote:
quelle est la différence entre ces 2 solutions :

1/ premier code

if mon_test = 1 then
truc = "michel"
exit sub
end if

truc = marie

2/ deuxieme code

if mon_test = 1 then
truc = "michel"
exit sub
else
truc = marie
end if

je pense que les 2 arrivent au même résultat mais quel est le plus
correct en code, et le plus rapide...
merci,
Bruno


Avatar
Patrice Henrio
Dans la deuxième solution, je ne vois pas l'utilité du exit sub
if <condition> then <Action 1> else <Action2> End If
Il faut préciser bien sûr le contexte qui me parait être celui-ci d'après la
question :
Sub Procédure1
if <condition> then
<Action 1>
else <Action2>
End If
End Sub
Donc si la condition est vraie, l'action1 est exécutée et comme elle
comporte un exit sub on sort tout de suite, mais c'est vrai aussi sans le
exit sub.
Si la condition est fausse on passe uniquement dans le else
On peut même concevoir ceci

Sub Procédure1
truc = "michel"
if mon_test = 1 then exit sub
truc = marie
End Sub

Qui doit être rapide aussi

En conclusion, ayant commencé à programmer avec des ordinateurs qui
tournaient à 4,77 MHz (et même moins pour mon premier ZX80) je ne me
tracasse plus depuis longtemps de la rapidité du code mais beaucoup plus de
sa lisibilité et de sa portabilité.
C'est pour cela que je préfère

Sub Procédure1
if mon_test = 1 then
truc = "michel"
else truc = marie
end if
End Sub

----- Original Message -----
From: "christophe-pasde<> @wanadoo.fr>" <"christophe-pasde<>
Newsgroups: microsoft.public.fr.vb
Sent: Tuesday, December 07, 2004 8:18 PM
Subject: Re: quelle différence entre ces 2 codes


Bonjour,

Personellement j'utilise la première forme, je trouve ça plus clair.
Au niveau compile je sais pas si il y a une différence qui induit un gain
en rapidité.

Christophe


dav a écrit :
quelle est la différence entre ces 2 solutions :

1/ premier code

if mon_test = 1 then
truc = "michel"
exit sub
end if

truc = marie

2/ deuxieme code

if mon_test = 1 then
truc = "michel"
exit sub
else
truc = marie
end if

je pense que les 2 arrivent au même résultat mais quel est le plus
correct en code, et le plus rapide...
merci,
Bruno




Avatar
christophe-pasde
Bonsoir/Bonjour,

Vous avez raison de souligner le contexte.

En effet si le exit sub est nécessaire ou pas.

Donc il faut savoir si mon-test est une condition de validité de
poursuite de la séquence de code qui compose la procédure.

Si oui le code qui suit est valide donc pas besoin de l'encadrer par un
else [...]end if, autant marquer la poursuite de la séquence comme étant
après le end if, je trouve ça plus clair.

Si non le exit sub à rien à faire là et on écrit
IF [...] then [...]End If
quand il y a deux sous séquences à réaliser.

Christophe



dav a écrit :

quelle est la différence entre ces 2 solutions :

1/ premier code

if mon_test = 1 then
truc = "michel"
exit sub
end if

truc = marie

2/ deuxieme code

if mon_test = 1 then
truc = "michel"
exit sub
else
truc = marie
end if

je pense que les 2 arrivent au même résultat mais quel est le plus
correct en code, et le plus rapide...
merci,
Bruno