Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb
évalue A et B, même si c'est inutile puisque quelque soit la valeur
booléenne de B, le résultat est True.
Private Sub Command1_Click()
Dim X As Integer
Dim B As Boolean
B = True Or ((1 / X) = 0)
Debug.Print B
End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés qu'on
rencontre False ?
-- Cordialement Yanick MVP pour Visual Basic "Patrice Henrio" a écrit dans le message de news:%23IGFhaM%
Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb évalue A et B, même si c'est inutile puisque quelque soit la valeur booléenne de B, le résultat est True.
Private Sub Command1_Click() Dim X As Integer Dim B As Boolean B = True Or ((1 / X) = 0) Debug.Print B End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
qu'on
rencontre False ?
Nope! :O/
Mais c'est possible avec .Net
--
Cordialement
Yanick
MVP pour Visual Basic
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:%23IGFhaM%23EHA.2568@TK2MSFTNGP11.phx.gbl...
Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb
évalue A et B, même si c'est inutile puisque quelque soit la valeur
booléenne de B, le résultat est True.
Private Sub Command1_Click()
Dim X As Integer
Dim B As Boolean
B = True Or ((1 / X) = 0)
Debug.Print B
End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
-- Cordialement Yanick MVP pour Visual Basic "Patrice Henrio" a écrit dans le message de news:%23IGFhaM%
Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb évalue A et B, même si c'est inutile puisque quelque soit la valeur booléenne de B, le résultat est True.
Private Sub Command1_Click() Dim X As Integer Dim B As Boolean B = True Or ((1 / X) = 0) Debug.Print B End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
qu'on
rencontre False ?
LE TROLL
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable if variable(i) <> true then ' ---> ??? endif next i ----- en boucle on peut ainsi compter l nombre de true ou false... compte=0 for i = 1 to maxi_variable if variable(i) = true then compte=compte + 1 next i
Sauf si je n'ai rien compris... Bonne soirée :o) -------
"Patrice Henrio" a écrit dans le message de news: %23IGFhaM%
Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb évalue A et B, même si c'est inutile puisque quelque soit la valeur booléenne de B, le résultat est True.
Private Sub Command1_Click() Dim X As Integer Dim B As Boolean B = True Or ((1 / X) = 0) Debug.Print B End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés qu'on rencontre False ?
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable
if variable(i) <> true then
' ---> ???
endif
next i
-----
en boucle on peut ainsi compter l nombre de true ou false...
compte=0
for i = 1 to maxi_variable
if variable(i) = true then compte=compte + 1
next i
Sauf si je n'ai rien compris... Bonne soirée :o)
-------
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news: %23IGFhaM%23EHA.2568@TK2MSFTNGP11.phx.gbl...
Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb
évalue A et B, même si c'est inutile puisque quelque soit la valeur
booléenne de B, le résultat est True.
Private Sub Command1_Click()
Dim X As Integer
Dim B As Boolean
B = True Or ((1 / X) = 0)
Debug.Print B
End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
qu'on rencontre False ?
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable if variable(i) <> true then ' ---> ??? endif next i ----- en boucle on peut ainsi compter l nombre de true ou false... compte=0 for i = 1 to maxi_variable if variable(i) = true then compte=compte + 1 next i
Sauf si je n'ai rien compris... Bonne soirée :o) -------
"Patrice Henrio" a écrit dans le message de news: %23IGFhaM%
Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb évalue A et B, même si c'est inutile puisque quelque soit la valeur booléenne de B, le résultat est True.
Private Sub Command1_Click() Dim X As Integer Dim B As Boolean B = True Or ((1 / X) = 0) Debug.Print B End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés qu'on rencontre False ?
Zoury
Salut Joe!
ça pourrais être fesable, seulement ça demande **beaucoup** plus de traitement que de faire la comparaison Or standard. Le but initial de la manoeuvre était d'accélérer ce traitement et parfois d'éviter que la deuxième expression plante.
-- Cordialement Yanick MVP pour Visual Basic
"LE TROLL" <le a écrit dans le message de news:edMn%23xM%
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable if variable(i) <> true then ' ---> ??? endif next i ----- en boucle on peut ainsi compter l nombre de true ou false... compte=0 for i = 1 to maxi_variable if variable(i) = true then compte=compte + 1 next i
Sauf si je n'ai rien compris... Bonne soirée :o) -------
"Patrice Henrio" a écrit dans le message de news: %23IGFhaM% > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B",
Vb
> évalue A et B, même si c'est inutile puisque quelque soit la valeur > booléenne de B, le résultat est True. > > Private Sub Command1_Click() > Dim X As Integer > Dim B As Boolean > B = True Or ((1 / X) = 0) > Debug.Print B > End Sub > > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés > qu'on rencontre False ? >
Salut Joe!
ça pourrais être fesable, seulement ça demande **beaucoup** plus de
traitement que de faire la comparaison Or standard. Le but initial de la
manoeuvre était d'accélérer ce traitement et parfois d'éviter que la
deuxième expression plante.
--
Cordialement
Yanick
MVP pour Visual Basic
"LE TROLL" <le troll@paris.fr> a écrit dans le message de
news:edMn%23xM%23EHA.3120@TK2MSFTNGP12.phx.gbl...
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable
if variable(i) <> true then
' ---> ???
endif
next i
-----
en boucle on peut ainsi compter l nombre de true ou false...
compte=0
for i = 1 to maxi_variable
if variable(i) = true then compte=compte + 1
next i
Sauf si je n'ai rien compris... Bonne soirée :o)
-------
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news: %23IGFhaM%23EHA.2568@TK2MSFTNGP11.phx.gbl...
> Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B",
Vb
> évalue A et B, même si c'est inutile puisque quelque soit la valeur
> booléenne de B, le résultat est True.
>
> Private Sub Command1_Click()
> Dim X As Integer
> Dim B As Boolean
> B = True Or ((1 / X) = 0)
> Debug.Print B
> End Sub
>
> Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
> s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
> qu'on rencontre False ?
>
ça pourrais être fesable, seulement ça demande **beaucoup** plus de traitement que de faire la comparaison Or standard. Le but initial de la manoeuvre était d'accélérer ce traitement et parfois d'éviter que la deuxième expression plante.
-- Cordialement Yanick MVP pour Visual Basic
"LE TROLL" <le a écrit dans le message de news:edMn%23xM%
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable if variable(i) <> true then ' ---> ??? endif next i ----- en boucle on peut ainsi compter l nombre de true ou false... compte=0 for i = 1 to maxi_variable if variable(i) = true then compte=compte + 1 next i
Sauf si je n'ai rien compris... Bonne soirée :o) -------
"Patrice Henrio" a écrit dans le message de news: %23IGFhaM% > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B",
Vb
> évalue A et B, même si c'est inutile puisque quelque soit la valeur > booléenne de B, le résultat est True. > > Private Sub Command1_Click() > Dim X As Integer > Dim B As Boolean > B = True Or ((1 / X) = 0) > Debug.Print B > End Sub > > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés > qu'on rencontre False ? >
Patrice Henrio
C'est bien ce qu'il me semblait. Je crois me souvenir que dans un langage que j'utilisais on pouvait paramétrer la compilation pour qu'il ne tste que ce qu'il fallait pour des suites de or ou de and. De plus en Lisp, il y a 15 ans, par défaut l' évaluation dans ce cas se faisait jusqu'à ce que le résulatta soit connu (donc un True pour or et un False pour And). Tant pis. Je voulais être sûr.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: %23Jae3%23M%
Salut Joe!
ça pourrais être fesable, seulement ça demande **beaucoup** plus de traitement que de faire la comparaison Or standard. Le but initial de la manoeuvre était d'accélérer ce traitement et parfois d'éviter que la deuxième expression plante.
-- Cordialement Yanick MVP pour Visual Basic
"LE TROLL" <le a écrit dans le message de news:edMn%23xM%
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable if variable(i) <> true then ' ---> ??? endif next i ----- en boucle on peut ainsi compter l nombre de true ou false... compte=0 for i = 1 to maxi_variable if variable(i) = true then compte=compte + 1 next i
Sauf si je n'ai rien compris... Bonne soirée :o) -------
"Patrice Henrio" a écrit dans le message de news: %23IGFhaM% > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B",
Vb
> évalue A et B, même si c'est inutile puisque quelque soit la valeur > booléenne de B, le résultat est True. > > Private Sub Command1_Click() > Dim X As Integer > Dim B As Boolean > B = True Or ((1 / X) = 0) > Debug.Print B > End Sub > > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés > qu'on rencontre False ? >
C'est bien ce qu'il me semblait.
Je crois me souvenir que dans un langage que j'utilisais on pouvait
paramétrer la compilation pour qu'il ne tste que ce qu'il fallait pour des
suites de or ou de and.
De plus en Lisp, il y a 15 ans, par défaut l' évaluation dans ce cas se
faisait jusqu'à ce que le résulatta soit connu (donc un True pour or et un
False pour And).
Tant pis. Je voulais être sûr.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %23Jae3%23M%23EHA.2104@TK2MSFTNGP14.phx.gbl...
Salut Joe!
ça pourrais être fesable, seulement ça demande **beaucoup** plus de
traitement que de faire la comparaison Or standard. Le but initial de la
manoeuvre était d'accélérer ce traitement et parfois d'éviter que la
deuxième expression plante.
--
Cordialement
Yanick
MVP pour Visual Basic
"LE TROLL" <le troll@paris.fr> a écrit dans le message de
news:edMn%23xM%23EHA.3120@TK2MSFTNGP12.phx.gbl...
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable
if variable(i) <> true then
' ---> ???
endif
next i
-----
en boucle on peut ainsi compter l nombre de true ou false...
compte=0
for i = 1 to maxi_variable
if variable(i) = true then compte=compte + 1
next i
Sauf si je n'ai rien compris... Bonne soirée :o)
-------
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news: %23IGFhaM%23EHA.2568@TK2MSFTNGP11.phx.gbl...
> Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B",
Vb
> évalue A et B, même si c'est inutile puisque quelque soit la valeur
> booléenne de B, le résultat est True.
>
> Private Sub Command1_Click()
> Dim X As Integer
> Dim B As Boolean
> B = True Or ((1 / X) = 0)
> Debug.Print B
> End Sub
>
> Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
> s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
> qu'on rencontre False ?
>
C'est bien ce qu'il me semblait. Je crois me souvenir que dans un langage que j'utilisais on pouvait paramétrer la compilation pour qu'il ne tste que ce qu'il fallait pour des suites de or ou de and. De plus en Lisp, il y a 15 ans, par défaut l' évaluation dans ce cas se faisait jusqu'à ce que le résulatta soit connu (donc un True pour or et un False pour And). Tant pis. Je voulais être sûr.
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: %23Jae3%23M%
Salut Joe!
ça pourrais être fesable, seulement ça demande **beaucoup** plus de traitement que de faire la comparaison Or standard. Le but initial de la manoeuvre était d'accélérer ce traitement et parfois d'éviter que la deuxième expression plante.
-- Cordialement Yanick MVP pour Visual Basic
"LE TROLL" <le a écrit dans le message de news:edMn%23xM%
Bonsoire, mais en boucle, ou avec un Do, un If, ça ne marche pas?
for i = 1 to maxi_variable if variable(i) <> true then ' ---> ??? endif next i ----- en boucle on peut ainsi compter l nombre de true ou false... compte=0 for i = 1 to maxi_variable if variable(i) = true then compte=compte + 1 next i
Sauf si je n'ai rien compris... Bonne soirée :o) -------
"Patrice Henrio" a écrit dans le message de news: %23IGFhaM% > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B",
Vb
> évalue A et B, même si c'est inutile puisque quelque soit la valeur > booléenne de B, le résultat est True. > > Private Sub Command1_Click() > Dim X As Integer > Dim B As Boolean > B = True Or ((1 / X) = 0) > Debug.Print B > End Sub > > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés > qu'on rencontre False ? >
dark poulpo
> Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb évalue A et B, même si c'est inutile puisque quelque soit la valeur booléenne de B, le résultat est True.
Private Sub Command1_Click() Dim X As Integer Dim B As Boolean B = True Or ((1 / X) = 0) Debug.Print B End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
qu'on
rencontre False ?
non, c'est le compilateur qui est comme ca et sa façon de gerer les expressions
peut etre qu'un simple (en remplacant true par un test pour l'exemple)
---------------- b= false;
if v = True then B=True else if (1 / X) = 0 then B = True end if
----- ou ------ b= true;
if v = True else if (1 / X) = 0 then else B = False end if
---- ou -------
b= true; if v <> True and (1 / X) = 0 then ' ca peut etre bien aussi dans le cas ou le test est rarement vrai (mais on pourait en dire autant de ton exemple aussi) B = False end if
fo comparer ca avec l'exemple que tu as cité au niveau de nombre de cycle processeur
de toute facon, si VB6 gérait l'evaluation d'expression de maniere optimisée, il ferait un test de saut. ce qui ressemblerai a peu de chose pres a ce qui est au dessus (surtout le 1er exemple)
-- ----- http://dark.freezee.org/
> Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb
évalue A et B, même si c'est inutile puisque quelque soit la valeur
booléenne de B, le résultat est True.
Private Sub Command1_Click()
Dim X As Integer
Dim B As Boolean
B = True Or ((1 / X) = 0)
Debug.Print B
End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
qu'on
rencontre False ?
non, c'est le compilateur qui est comme ca et sa façon de gerer les
expressions
peut etre qu'un simple (en remplacant true par un test pour l'exemple)
----------------
b= false;
if v = True then
B=True
else if (1 / X) = 0 then
B = True
end if
----- ou ------
b= true;
if v = True
else if (1 / X) = 0 then
else
B = False
end if
---- ou -------
b= true;
if v <> True and (1 / X) = 0 then ' ca peut etre bien aussi dans le cas
ou le test est rarement vrai (mais on pourait en dire autant de ton exemple
aussi)
B = False
end if
fo comparer ca avec l'exemple que tu as cité au niveau de nombre de cycle
processeur
de toute facon, si VB6 gérait l'evaluation d'expression de maniere
optimisée, il ferait un test de saut. ce qui ressemblerai a peu de chose
pres a ce qui est au dessus (surtout le 1er exemple)
> Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb évalue A et B, même si c'est inutile puisque quelque soit la valeur booléenne de B, le résultat est True.
Private Sub Command1_Click() Dim X As Integer Dim B As Boolean B = True Or ((1 / X) = 0) Debug.Print B End Sub
Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
qu'on
rencontre False ?
non, c'est le compilateur qui est comme ca et sa façon de gerer les expressions
peut etre qu'un simple (en remplacant true par un test pour l'exemple)
---------------- b= false;
if v = True then B=True else if (1 / X) = 0 then B = True end if
----- ou ------ b= true;
if v = True else if (1 / X) = 0 then else B = False end if
---- ou -------
b= true; if v <> True and (1 / X) = 0 then ' ca peut etre bien aussi dans le cas ou le test est rarement vrai (mais on pourait en dire autant de ton exemple aussi) B = False end if
fo comparer ca avec l'exemple que tu as cité au niveau de nombre de cycle processeur
de toute facon, si VB6 gérait l'evaluation d'expression de maniere optimisée, il ferait un test de saut. ce qui ressemblerai a peu de chose pres a ce qui est au dessus (surtout le 1er exemple)
ya meme mieux, si il testait les resultats des expressions composé de valeurs constantes directement à la compil il te compilerai juste
b=true 'le reste ne serait meme inclu
mais bon, ce n'est pas pour rien que c'est du VB!!!
-- ----- http://dark.freezee.org/
Pascal B.
Bonjour,
(Petite précision) Il est INUTILE d'écrire: - If V = True Then écrire a la place: - If V Then
et: - If V <> True Then ou If V = False Then s'écrira: - If Not V Then
Cordialement Pascal B.
"dark poulpo" wrote in message news:41e5a21a$0$25813$ | > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb | > évalue A et B, même si c'est inutile puisque quelque soit la valeur | > booléenne de B, le résultat est True. | > | > Private Sub Command1_Click() | > Dim X As Integer | > Dim B As Boolean | > B = True Or ((1 / X) = 0) | > Debug.Print B | > End Sub | > | > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" | > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés | qu'on | > rencontre False ? | > | | non, c'est le compilateur qui est comme ca et sa façon de gerer les | expressions | | peut etre qu'un simple (en remplacant true par un test pour l'exemple) | | ---------------- | b= false; | | if v = True then | B=True | else if (1 / X) = 0 then | B = True | end if | | ----- ou ------ | b= true; | | if v = True | else if (1 / X) = 0 then | else | B = False | end if | | ---- ou ------- | | b= true; | if v <> True and (1 / X) = 0 then ' ca peut etre bien aussi dans le cas | ou le test est rarement vrai (mais on pourait en dire autant de ton exemple | aussi) | B = False | end if | | | | fo comparer ca avec l'exemple que tu as cité au niveau de nombre de cycle | processeur | | de toute facon, si VB6 gérait l'evaluation d'expression de maniere | optimisée, il ferait un test de saut. ce qui ressemblerai a peu de chose | pres a ce qui est au dessus (surtout le 1er exemple) | | | -- | ----- | http://dark.freezee.org/ | |
Bonjour,
(Petite précision)
Il est INUTILE d'écrire:
- If V = True Then
écrire a la place:
- If V Then
et:
- If V <> True Then ou If V = False Then
s'écrira:
- If Not V Then
Cordialement
Pascal B.
"dark poulpo" <qsdqd@sss.ss> wrote in message news:41e5a21a$0$25813$8fcfb975@news.wanadoo.fr...
| > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb
| > évalue A et B, même si c'est inutile puisque quelque soit la valeur
| > booléenne de B, le résultat est True.
| >
| > Private Sub Command1_Click()
| > Dim X As Integer
| > Dim B As Boolean
| > B = True Or ((1 / X) = 0)
| > Debug.Print B
| > End Sub
| >
| > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou"
| > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés
| qu'on
| > rencontre False ?
| >
|
| non, c'est le compilateur qui est comme ca et sa façon de gerer les
| expressions
|
| peut etre qu'un simple (en remplacant true par un test pour l'exemple)
|
| ----------------
| b= false;
|
| if v = True then
| B=True
| else if (1 / X) = 0 then
| B = True
| end if
|
| ----- ou ------
| b= true;
|
| if v = True
| else if (1 / X) = 0 then
| else
| B = False
| end if
|
| ---- ou -------
|
| b= true;
| if v <> True and (1 / X) = 0 then ' ca peut etre bien aussi dans le cas
| ou le test est rarement vrai (mais on pourait en dire autant de ton exemple
| aussi)
| B = False
| end if
|
|
|
| fo comparer ca avec l'exemple que tu as cité au niveau de nombre de cycle
| processeur
|
| de toute facon, si VB6 gérait l'evaluation d'expression de maniere
| optimisée, il ferait un test de saut. ce qui ressemblerai a peu de chose
| pres a ce qui est au dessus (surtout le 1er exemple)
|
|
| --
| -----
| http://dark.freezee.org/
|
|
(Petite précision) Il est INUTILE d'écrire: - If V = True Then écrire a la place: - If V Then
et: - If V <> True Then ou If V = False Then s'écrira: - If Not V Then
Cordialement Pascal B.
"dark poulpo" wrote in message news:41e5a21a$0$25813$ | > Comme l'indique l'exemple ci-dessous, lors de l'évaluation de "A or B", Vb | > évalue A et B, même si c'est inutile puisque quelque soit la valeur | > booléenne de B, le résultat est True. | > | > Private Sub Command1_Click() | > Dim X As Integer | > Dim B As Boolean | > B = True Or ((1 / X) = 0) | > Debug.Print B | > End Sub | > | > Existe-t-il un moyen en Vb pour que l'évaluation d'une suite de "ou" | > s'arrête dés que l'on rencontre True, et celle d'une suite de And, dés | qu'on | > rencontre False ? | > | | non, c'est le compilateur qui est comme ca et sa façon de gerer les | expressions | | peut etre qu'un simple (en remplacant true par un test pour l'exemple) | | ---------------- | b= false; | | if v = True then | B=True | else if (1 / X) = 0 then | B = True | end if | | ----- ou ------ | b= true; | | if v = True | else if (1 / X) = 0 then | else | B = False | end if | | ---- ou ------- | | b= true; | if v <> True and (1 / X) = 0 then ' ca peut etre bien aussi dans le cas | ou le test est rarement vrai (mais on pourait en dire autant de ton exemple | aussi) | B = False | end if | | | | fo comparer ca avec l'exemple que tu as cité au niveau de nombre de cycle | processeur | | de toute facon, si VB6 gérait l'evaluation d'expression de maniere | optimisée, il ferait un test de saut. ce qui ressemblerai a peu de chose | pres a ce qui est au dessus (surtout le 1er exemple) | | | -- | ----- | http://dark.freezee.org/ | |
dark poulpo
> (Petite précision) Il est INUTILE d'écrire: - If V = True Then écrire a la place: - If V Then
et: - If V <> True Then ou If V = False Then s'écrira: - If Not V Then
merci, mais on s'ecarte, jai fait expres de mettre un test de comparaison javais ecrit "(en remplacant true par un test pour l'exemple)"
-- ----- http://dark.freezee.org/
> (Petite précision)
Il est INUTILE d'écrire:
- If V = True Then
écrire a la place:
- If V Then
et:
- If V <> True Then ou If V = False Then
s'écrira:
- If Not V Then
merci, mais on s'ecarte, jai fait expres de mettre un test de comparaison
javais ecrit "(en remplacant true par un test pour l'exemple)"
> (Petite précision) Il est INUTILE d'écrire: - If V = True Then écrire a la place: - If V Then
et: - If V <> True Then ou If V = False Then s'écrira: - If Not V Then
merci, mais on s'ecarte, jai fait expres de mettre un test de comparaison javais ecrit "(en remplacant true par un test pour l'exemple)"
-- ----- http://dark.freezee.org/
Pascal B.
En fait, je pensait qu'on parlait de performance et donc - If V Then est "plus mieux" que - If V = True Then
(sans vouloir pinailler)
Pascal B.
"dark poulpo" wrote in message news:41e62f76$0$7111$ | > (Petite précision) | > Il est INUTILE d'écrire: | > - If V = True Then | > écrire a la place: | > - If V Then | > | > et: | > - If V <> True Then ou If V = False Then | > s'écrira: | > - If Not V Then | > | | merci, mais on s'ecarte, jai fait expres de mettre un test de comparaison | javais ecrit "(en remplacant true par un test pour l'exemple)" | | | -- | ----- | http://dark.freezee.org/ | |
En fait, je pensait qu'on parlait de performance et donc
- If V Then
est "plus mieux" que
- If V = True Then
(sans vouloir pinailler)
Pascal B.
"dark poulpo" <qsdqd@sss.ss> wrote in message news:41e62f76$0$7111$8fcfb975@news.wanadoo.fr...
| > (Petite précision)
| > Il est INUTILE d'écrire:
| > - If V = True Then
| > écrire a la place:
| > - If V Then
| >
| > et:
| > - If V <> True Then ou If V = False Then
| > s'écrira:
| > - If Not V Then
| >
|
| merci, mais on s'ecarte, jai fait expres de mettre un test de comparaison
| javais ecrit "(en remplacant true par un test pour l'exemple)"
|
|
| --
| -----
| http://dark.freezee.org/
|
|
En fait, je pensait qu'on parlait de performance et donc - If V Then est "plus mieux" que - If V = True Then
(sans vouloir pinailler)
Pascal B.
"dark poulpo" wrote in message news:41e62f76$0$7111$ | > (Petite précision) | > Il est INUTILE d'écrire: | > - If V = True Then | > écrire a la place: | > - If V Then | > | > et: | > - If V <> True Then ou If V = False Then | > s'écrira: | > - If Not V Then | > | | merci, mais on s'ecarte, jai fait expres de mettre un test de comparaison | javais ecrit "(en remplacant true par un test pour l'exemple)" | | | -- | ----- | http://dark.freezee.org/ | |