Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1335 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] opérateur équivalents à "And Then" et "Or Else"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] opérateur équivalents à "And Then" et "Or Else"

n°134035
mareek
Et de 3 \o/
Posté le 03-05-2002 à 13:24:41  profilanswer
 

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:

Code :
  1. If (i<>0) And Then (val/i >5) then
  2.   //instructions...
  3. end if


 
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  :hello:


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
mood
Publicité
Posté le 03-05-2002 à 13:24:41  profilanswer
 

n°134052
Brunix007
Posté le 03-05-2002 à 13:44:28  profilanswer
 

Tu peux utiliser une boucle imbriquée comme ça
 
if i<>0 then
  if (val/i > 5) then
 
  endif
endif
 
Voila .. :hello:

n°134090
mareek
Et de 3 \o/
Posté le 03-05-2002 à 14:30:09  profilanswer
 

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 .. :hello:  




 
Le pb, c'est que si je fais comme ça, je dois faire 2 fois le même else:

Code :
  1. if i<>0 then
  2.   if (val/i > 5) then
  3.     'Instruction 1
  4.   else
  5.     'instruction 2
  6.   end if
  7. else
  8.   'instruction 2
  9. end if


 
alors qu'avec le "and then" je ferais ça:

Code :
  1. if i<>0 and then (val/i > 5) then
  2.   'Instruction 1
  3. else
  4.   'instruction 2
  5. end if


 
donc ça m'éviterai de la redondance de code et les problèmes inhérents en cas de modif du code.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°135225
mareek
Et de 3 \o/
Posté le 06-05-2002 à 12:26:12  profilanswer
 

[:tomilou] 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  :( )


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°135236
Carbon_14
Posté le 06-05-2002 à 12:51:37  profilanswer
 

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 .....?

n°135240
mareek
Et de 3 \o/
Posté le 06-05-2002 à 12:54:10  profilanswer
 

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...


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°135253
the big be​n
Posté le 06-05-2002 à 13:33:07  profilanswer
 

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

n°135258
Carbon_14
Posté le 06-05-2002 à 13:42:51  profilanswer
 

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..

n°135300
mareek
Et de 3 \o/
Posté le 06-05-2002 à 14:32:09  profilanswer
 

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 :(


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] opérateur équivalents à "And Then" et "Or Else"

 

Sujets relatifs
C ... g un else misplaced ds ma fct mais je vois pas pqproblème d'opérateur logique
[C++ Opérateur bit à bit] << et >>[C++] j ai un doute, peut on redefinir l operateur ">" (superieur)
MySQL-- operateur de non-egalité???Opérateur binaire de résolution de portée ??
[PHP] if... else... while.. boucle.. sos....SQL et opérateur ensembliste
[VB] operateur binaire NOT[ASP] if ... then ... PB
Plus de sujets relatifs à : [VB] opérateur équivalents à "And Then" et "Or Else"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR