OVH Cloud OVH Cloud

AndAlso / OrElse

11 réponses
Avatar
Stéphane L.
Bonjour,

J'aimerais avoir quelques exemples où l'utilisation de AndAlso au lieu de
And, ou de OrElse au lieu de Or modifie un résultat.

Merci d'avance,
Stéphane

10 réponses

1 2
Avatar
David.V
Que veut tu dire par "modifie un résultat" ?

Sinon, en résumé :

XXX And YYY => YYY est évalué quelque soit le résultat de l'évaluation de
XXX
XXX AndAlso YYY => YYY est évalué si XXX est vérifié

XXX Or YYY => YYY est évalué quelque soit le résultat de l'évaluation de XXX
XXX OrElse YYY => YYY est évalué seulement si XXX n'a pas été vérifié.

David

"Stéphane L." a écrit dans le
message de news:%23M$
Bonjour,

J'aimerais avoir quelques exemples où l'utilisation de AndAlso au lieu de
And, ou de OrElse au lieu de Or modifie un résultat.

Merci d'avance,
Stéphane




Avatar
Fred
Bonjour,
While Index<List.Count AndAlso Toto<>List(Index)
'Faire quelquechose
Wend

Sans le AndAlso, cela plante lorsque Index est égale à List.Count

Pour le OrElse, cela peut éviter d'exécuter une seconde partie de test un
peut lourde si la première est déjà vraie.


"Stéphane L." a écrit dans le
message de news: %23M$
Bonjour,

J'aimerais avoir quelques exemples où l'utilisation de AndAlso au lieu de
And, ou de OrElse au lieu de Or modifie un résultat.

Merci d'avance,
Stéphane



Avatar
Stéphane L.
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en gardant le
même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso n'existerai pas.
Cela serait devenu transparent, et cela aurait amélioré tous les programmes
déjà effectués.

Stéphane.


"Fred" a écrit dans le message de news:

Bonjour,
While Index<List.Count AndAlso Toto<>List(Index)
'Faire quelquechose
Wend

Sans le AndAlso, cela plante lorsque Index est égale à List.Count

Pour le OrElse, cela peut éviter d'exécuter une seconde partie de test un
peut lourde si la première est déjà vraie.


"Stéphane L." a écrit dans
le message de news: %23M$
Bonjour,

J'aimerais avoir quelques exemples où l'utilisation de AndAlso au lieu de
And, ou de OrElse au lieu de Or modifie un résultat.

Merci d'avance,
Stéphane







Avatar
Fred
"Stéphane L." a écrit dans le
message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en gardant
le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso n'existerai
pas. Cela serait devenu transparent, et cela aurait amélioré tous les
programmes déjà effectués.

Stéphane.



Bonsoir,
Il est vrai que AndAlso et OrElse sont bien pratiques, d'ailleurs, pour
avoir programmé en Turbo Pascal il y un moment, c'était le comportement du
And et du Or. Cela dit, d'un point de vue algorithmique, je préferrais ne
pas utiliser cette fonctionnalité, qui n'est pas reproduite dans tous les
langages. Au moins avec AndAlso et OrElse, on est fixé.
Quand à dire que de modifier le comportement du And et du Or ne va pas
entraîner de conséquences il y a des contre-exemples.
Imagine un programme (mal écrit) qui compte sur un effet de bord produit par
le seconde comparaison !
Avatar
Stéphane L.
>Imagine un programme (mal écrit) qui compte sur un effet de bord produit
par


le seconde comparaison !

Justement, je n'arrive pas à imaginer....


Stéphane


"Fred" a écrit dans le message de news:


"Stéphane L." a écrit dans
le message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en gardant
le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso n'existerai
pas. Cela serait devenu transparent, et cela aurait amélioré tous les
programmes déjà effectués.

Stéphane.



Bonsoir,
Il est vrai que AndAlso et OrElse sont bien pratiques, d'ailleurs, pour
avoir programmé en Turbo Pascal il y un moment, c'était le comportement du
And et du Or. Cela dit, d'un point de vue algorithmique, je préferrais ne
pas utiliser cette fonctionnalité, qui n'est pas reproduite dans tous les
langages. Au moins avec AndAlso et OrElse, on est fixé.
Quand à dire que de modifier le comportement du And et du Or ne va pas
entraîner de conséquences il y a des contre-exemples.
Imagine un programme (mal écrit) qui compte sur un effet de bord produit
par le seconde comparaison !




Avatar
Fred
J'y suis ! Je n'avais bien interprété ta question initiale.
Si tu avais posé directement ta question existentielle ...
Un exemple qui me vient à l'esprit : le read d'un datareader
Il doit y en avoir d'autres mais bon, imagine ;-)



"Stéphane L." a écrit dans le
message de news:
>Imagine un programme (mal écrit) qui compte sur un effet de bord produit
>par
le seconde comparaison !

Justement, je n'arrive pas à imaginer....


Stéphane


"Fred" a écrit dans le message de news:


"Stéphane L." a écrit dans
le message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en gardant
le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso n'existerai
pas. Cela serait devenu transparent, et cela aurait amélioré tous les
programmes déjà effectués.

Stéphane.



Bonsoir,
Il est vrai que AndAlso et OrElse sont bien pratiques, d'ailleurs, pour
avoir programmé en Turbo Pascal il y un moment, c'était le comportement
du And et du Or. Cela dit, d'un point de vue algorithmique, je préferrais
ne pas utiliser cette fonctionnalité, qui n'est pas reproduite dans tous
les langages. Au moins avec AndAlso et OrElse, on est fixé.
Quand à dire que de modifier le comportement du And et du Or ne va pas
entraîner de conséquences il y a des contre-exemples.
Imagine un programme (mal écrit) qui compte sur un effet de bord produit
par le seconde comparaison !








Avatar
Stéphane L.
OK merci, me reste plus qu'à rechercher 1 peu du côté des datareader pour
savoir ce que c'est, pour pouvoir imaginer ^^.

Stéphane


"Fred" a écrit dans le message de news:

J'y suis ! Je n'avais bien interprété ta question initiale.
Si tu avais posé directement ta question existentielle ...
Un exemple qui me vient à l'esprit : le read d'un datareader
Il doit y en avoir d'autres mais bon, imagine ;-)



"Stéphane L." a écrit dans
le message de news:
>Imagine un programme (mal écrit) qui compte sur un effet de bord produit
>par
le seconde comparaison !

Justement, je n'arrive pas à imaginer....


Stéphane


"Fred" a écrit dans le message de news:


"Stéphane L." a écrit
dans le message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en
gardant le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso n'existerai
pas. Cela serait devenu transparent, et cela aurait amélioré tous les
programmes déjà effectués.

Stéphane.



Bonsoir,
Il est vrai que AndAlso et OrElse sont bien pratiques, d'ailleurs, pour
avoir programmé en Turbo Pascal il y un moment, c'était le comportement
du And et du Or. Cela dit, d'un point de vue algorithmique, je
préferrais ne pas utiliser cette fonctionnalité, qui n'est pas
reproduite dans tous les langages. Au moins avec AndAlso et OrElse, on
est fixé.
Quand à dire que de modifier le comportement du And et du Or ne va pas
entraîner de conséquences il y a des contre-exemples.
Imagine un programme (mal écrit) qui compte sur un effet de bord produit
par le seconde comparaison !












Avatar
Fred
Bonjour,
Rapidement :
Un datareader permet d'avancer dans un ensemble de lignes retourné par une
requête SQL.
Le read permet d'avancer d'une ligne tout en renvoyant True si l'avancée a
eu lieu, et false si on est rendu en fin du jeu de résultat.
Donc, non seulement on sait si l'action est possible mais on la réalise. Si
ce read est placé après un And au comportement modifié en AndAlso, il peut
ne pas être effectué.
Enfin, tout cela est un peu tordu et je partage ton avis que dans la
généralité, il ne doit pas y avoir de modification du résultat d'un
programme qui tourne avec un And si on remplace ce dernier par un AndAlso.
Simplement l'éventualité existe ce qui peut justifier l'ajout d'un nouveau
mot clé plutôt que la modification d'un comportement connu.



"Stéphane L." a écrit dans le
message de news:
OK merci, me reste plus qu'à rechercher 1 peu du côté des datareader pour
savoir ce que c'est, pour pouvoir imaginer ^^.

Stéphane


"Fred" a écrit dans le message de news:

J'y suis ! Je n'avais bien interprété ta question initiale.
Si tu avais posé directement ta question existentielle ...
Un exemple qui me vient à l'esprit : le read d'un datareader
Il doit y en avoir d'autres mais bon, imagine ;-)



"Stéphane L." a écrit dans
le message de news:
>Imagine un programme (mal écrit) qui compte sur un effet de bord
>produit par
le seconde comparaison !

Justement, je n'arrive pas à imaginer....


Stéphane


"Fred" a écrit dans le message de news:


"Stéphane L." a écrit
dans le message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en
gardant le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso
n'existerai pas. Cela serait devenu transparent, et cela aurait
amélioré tous les programmes déjà effectués.

Stéphane.



Bonsoir,
Il est vrai que AndAlso et OrElse sont bien pratiques, d'ailleurs, pour
avoir programmé en Turbo Pascal il y un moment, c'était le comportement
du And et du Or. Cela dit, d'un point de vue algorithmique, je
préferrais ne pas utiliser cette fonctionnalité, qui n'est pas
reproduite dans tous les langages. Au moins avec AndAlso et OrElse, on
est fixé.
Quand à dire que de modifier le comportement du And et du Or ne va pas
entraîner de conséquences il y a des contre-exemples.
Imagine un programme (mal écrit) qui compte sur un effet de bord
produit par le seconde comparaison !
















Avatar
Stéphane L.
Merci pour ces éclaircissements :)

Stéphane

"Fred" a écrit dans le message de news:

Bonjour,
Rapidement :
Un datareader permet d'avancer dans un ensemble de lignes retourné par une
requête SQL.
Le read permet d'avancer d'une ligne tout en renvoyant True si l'avancée a
eu lieu, et false si on est rendu en fin du jeu de résultat.
Donc, non seulement on sait si l'action est possible mais on la réalise.
Si ce read est placé après un And au comportement modifié en AndAlso, il
peut ne pas être effectué.
Enfin, tout cela est un peu tordu et je partage ton avis que dans la
généralité, il ne doit pas y avoir de modification du résultat d'un
programme qui tourne avec un And si on remplace ce dernier par un AndAlso.
Simplement l'éventualité existe ce qui peut justifier l'ajout d'un nouveau
mot clé plutôt que la modification d'un comportement connu.



"Stéphane L." a écrit dans
le message de news:
OK merci, me reste plus qu'à rechercher 1 peu du côté des datareader pour
savoir ce que c'est, pour pouvoir imaginer ^^.

Stéphane


"Fred" a écrit dans le message de news:

J'y suis ! Je n'avais bien interprété ta question initiale.
Si tu avais posé directement ta question existentielle ...
Un exemple qui me vient à l'esprit : le read d'un datareader
Il doit y en avoir d'autres mais bon, imagine ;-)



"Stéphane L." a écrit
dans le message de news:
>Imagine un programme (mal écrit) qui compte sur un effet de bord
>produit par
le seconde comparaison !

Justement, je n'arrive pas à imaginer....


Stéphane


"Fred" a écrit dans le message de news:


"Stéphane L." a écrit
dans le message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse
et éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en
gardant le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso
n'existerai pas. Cela serait devenu transparent, et cela aurait
amélioré tous les programmes déjà effectués.

Stéphane.



Bonsoir,
Il est vrai que AndAlso et OrElse sont bien pratiques, d'ailleurs,
pour avoir programmé en Turbo Pascal il y un moment, c'était le
comportement du And et du Or. Cela dit, d'un point de vue
algorithmique, je préferrais ne pas utiliser cette fonctionnalité, qui
n'est pas reproduite dans tous les langages. Au moins avec AndAlso et
OrElse, on est fixé.
Quand à dire que de modifier le comportement du And et du Or ne va pas
entraîner de conséquences il y a des contre-exemples.
Imagine un programme (mal écrit) qui compte sur un effet de bord
produit par le seconde comparaison !




















Avatar
c2i-Richard Clark
MS l'avait fait. Mais certaines personnes (pour d'obscures raisons) ont
demandés que le comportement de VB6 soit reproduit!!!!

--
Richard Clark - MVP .NET
http://www.project-hoshimi.com
http://www.c2i.fr
"Stéphane L." a écrit dans le
message de news:
Merci

Apparement, le AndAlso et le OrElse ne fait qu'améliorer la vitesse et
éviter des erreurs.

Mais alors, je me pose 1 question existentielle....

Pourquoi Microsoft n'a tout simplement pas remplacé And, mais en gardant
le même syntaxe ?
Je veux dire par là, ce que faisait le And avant ferait le AndAlso de
maintenant, mais tout en gardant la syntaxe And. Le AndAlso n'existerai
pas. Cela serait devenu transparent, et cela aurait amélioré tous les
programmes déjà effectués.

Stéphane.


"Fred" a écrit dans le message de news:

Bonjour,
While Index<List.Count AndAlso Toto<>List(Index)
'Faire quelquechose
Wend

Sans le AndAlso, cela plante lorsque Index est égale à List.Count

Pour le OrElse, cela peut éviter d'exécuter une seconde partie de test un
peut lourde si la première est déjà vraie.


"Stéphane L." a écrit dans
le message de news: %23M$
Bonjour,

J'aimerais avoir quelques exemples où l'utilisation de AndAlso au lieu
de And, ou de OrElse au lieu de Or modifie un résultat.

Merci d'avance,
Stéphane











1 2