opérateur équivalents à "And Then" et "Or Else" [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 03-05-2002 à 13:44:28
Tu peux utiliser une boucle imbriquée comme ça
if i<>0 then
if (val/i > 5) then
endif
endif
Voila ..
Marsh Posté le 03-05-2002 à 14:30:09
brunix007 a écrit a écrit : Tu peux utiliser une boucle imbriquée comme ça if i<>0 then if (val/i > 5) then endif endif Voila .. |
Le pb, c'est que si je fais comme ça, je dois faire 2 fois le même else:
Code :
|
alors qu'avec le "and then" je ferais ça:
Code :
|
donc ça m'éviterai de la redondance de code et les problèmes inhérents en cas de modif du code.
Marsh Posté le 06-05-2002 à 12:26:12
pour la forme, mais je pense que ça doit pas exister (remarque je m'en serais rendu compte depuis le temps que ça me fait chier )
Marsh Posté le 06-05-2002 à 12:51:37
La méthode indiquée est la plus sûre si on ne veut pas évaluer la deuxième condition si la première est fausse (comme en C).
On peut aussi faire if ((A = B) AND (C = D)) then
mais qui peut dire si la seconde expression sera ou non évaluée si A <> B .....?
Marsh Posté le 06-05-2002 à 12:54:10
carbon_14 a écrit a écrit : La méthode indiquée est la plus sûre si on ne veut pas évaluer la deuxième condition si la première est fausse (comme en C). On peut aussi faire if ((A = B) AND (C = D)) then mais qui peut dire si la seconde expression sera ou non évaluée si A <> B .....? |
Elle est évaluée, j'en ai fait la cruelle experience...
Marsh Posté le 06-05-2002 à 13:33:07
il exite aussi la commande select case je crois:
select case (variable)
case is 1 : ...
case is 2 : ...
else : ...
end case
ou qq ch du genre
Marsh Posté le 06-05-2002 à 13:42:51
Si le problème est que la structure
if i<>0 then
if (val/i > 5) then
'Instruction 1
else
'instruction 2
end if
else
'instruction 2
end if
risque de poser des problèmes lors de changements du code, il suffit de créer une fonction "mère" qui traîte l'instruction 2 globalement, il suffira ensuite de ne changer que le contenu du corps de cette fonction => pas de risque d'erreur.
if i<>0 then
if (val/i > 5) then
'Instruction 1
else
Call FonctionMere
end if
else
Call FonctionMere
end if
Le VB, ce n'est pas le C ! Ca a des avantages et des inconvénients..
Marsh Posté le 06-05-2002 à 14:32:09
carbon_14 a écrit a écrit : Le VB, ce n'est pas le C ! Ca a des avantages et des inconvénients.. |
Je sais, je n'ai pas choisi de programmer en VB
Marsh Posté le 03-05-2002 à 13:24:41
Salut à tous !
Je voulais savoir si il existe des opérateurs comme && et || en C/C++/JAVA qui n'évaluent le deuxième élément que si c'est nécessaire.
par exemple dans ça:
VB n'évaluerai (val/i>5) que si (i<>0) est vrai.
Si quelqu'un peux maider, je lui en serai grandement reconnaissant.
Merci d'avance
---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack