Un autre classique oublier ... : valeur = 1 - valeur
Et bonjour à tous !! Je n'ai pas remis les pieds ici depuis des lunes. :)
Yanick
"Jean-marc" a écrit dans le message de news: 48ea57b5$0$2846$
bahn po wrote:
Hello,
Hello,
Habituellement j'utilise ça If valeur = 0 Then valeur = 1 Else valeur = 0 pour faire passer successivement un integer de 0 à 1 et à 0 ... Existe-t-il autre chose ?
Tu peux par exemple utiliser l'opération modulo, comme ceci:
Private Sub Command1_Click() Static n As Integer
n = (n + 1) Mod 2 Debug.Print n End Sub
Ca produit : 1,0,1,0,1,0,etc.
Tu peux aussi utiliser XOR, très pratique pour ça:
Private Sub Command3_Click() Static n As Integer
n = n Xor 1 Debug.Print n End Sub
Ca produit : 1,0,1,0,1,0,etc.
Si par contre ce que tu veux fonctionnellement, c'est simplement un changement d'état (que les valeurs 0 et 1 en tant que telles ne t'intéressent pas), il est plus judicieux d'utiliser un boolean, comme ça:
Private Sub Command2_Click() Static b As Boolean
b = Not b Debug.Print b End Sub
Ca produit: True, False, True, False, etc.
Il y en a d'autres, mais bon, en VB, ceux ci me semblent les plus classiques.
Un autre classique oublier ... :
valeur = 1 - valeur
Et bonjour à tous !! Je n'ai pas remis les pieds ici depuis des lunes. :)
Yanick
"Jean-marc" <jm@nowhere.invalid> a écrit dans le message de news:
48ea57b5$0$2846$ba620e4c@news.skynet.be...
bahn po wrote:
Hello,
Hello,
Habituellement j'utilise ça
If valeur = 0 Then valeur = 1 Else valeur = 0
pour faire passer successivement un integer de 0 à 1 et à 0 ...
Existe-t-il autre chose ?
Tu peux par exemple utiliser l'opération modulo,
comme ceci:
Private Sub Command1_Click()
Static n As Integer
n = (n + 1) Mod 2
Debug.Print n
End Sub
Ca produit : 1,0,1,0,1,0,etc.
Tu peux aussi utiliser XOR, très pratique pour ça:
Private Sub Command3_Click()
Static n As Integer
n = n Xor 1
Debug.Print n
End Sub
Ca produit : 1,0,1,0,1,0,etc.
Si par contre ce que tu veux fonctionnellement, c'est simplement
un changement d'état (que les valeurs 0 et 1 en tant que telles
ne t'intéressent pas), il est plus judicieux d'utiliser un
boolean, comme ça:
Private Sub Command2_Click()
Static b As Boolean
b = Not b
Debug.Print b
End Sub
Ca produit: True, False, True, False, etc.
Il y en a d'autres, mais bon, en VB, ceux ci me semblent
les plus classiques.
Un autre classique oublier ... : valeur = 1 - valeur
Et bonjour à tous !! Je n'ai pas remis les pieds ici depuis des lunes. :)
Yanick
"Jean-marc" a écrit dans le message de news: 48ea57b5$0$2846$
bahn po wrote:
Hello,
Hello,
Habituellement j'utilise ça If valeur = 0 Then valeur = 1 Else valeur = 0 pour faire passer successivement un integer de 0 à 1 et à 0 ... Existe-t-il autre chose ?
Tu peux par exemple utiliser l'opération modulo, comme ceci:
Private Sub Command1_Click() Static n As Integer
n = (n + 1) Mod 2 Debug.Print n End Sub
Ca produit : 1,0,1,0,1,0,etc.
Tu peux aussi utiliser XOR, très pratique pour ça:
Private Sub Command3_Click() Static n As Integer
n = n Xor 1 Debug.Print n End Sub
Ca produit : 1,0,1,0,1,0,etc.
Si par contre ce que tu veux fonctionnellement, c'est simplement un changement d'état (que les valeurs 0 et 1 en tant que telles ne t'intéressent pas), il est plus judicieux d'utiliser un boolean, comme ça:
Private Sub Command2_Click() Static b As Boolean
b = Not b Debug.Print b End Sub
Ca produit: True, False, True, False, etc.
Il y en a d'autres, mais bon, en VB, ceux ci me semblent les plus classiques.