Select Case

Signaler
Messages postés
2
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
11 juillet 2005
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
Bonjour
Devant modifier un source, je trouve ces instructions dans le code :

For i = 0 To Sel_Client.Rows - 1
Select Case i
Case 0 Or 3
If Sel_Client.TextMatrix(i, 2) = "****" Then
Client_Selected = 1
End If
Case Else
If Sel_Client.TextMatrix(i, 2) = "****" Then
Client_Selected = 1
End If
End Select
Next

Peut-on me dire ce qui se passe sur la ligne : Case 0 Or 3 ???
A mon avis rien puisque lors de la première itération c'est le Case Else qui est exécuté. Je pense que c'est une erreur et que ce serait plutôt Case 0,3.
De toute façon, quelle que soit la valeur de i, on fait toujours la même chose...
Avec mes remerciements.

6 réponses

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Salut,

je ne vois pas l'intérêt du select case puisqu'en effet, dans tous les cas, le prog va faire la même chose... aucun intérêt.

@+
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,

Il se passe que le code de ce case s'exécute pour une valeur de 3 car l'expression '0 OR 3' donne 3.
Suis ok avec toi pour le 0,3 si tu veux que ça s'exécute pour les valeurs 0 et 3.
D'autre part, je ne vois pas l'intérêt d'un select case puisque, tu l'as dit, c'est le même code pour tous les cas.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
7
lol c kler !!

c une blague ?? mdr
Messages postés
2
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
11 juillet 2005

C'est ce que je pensais également. Ce qui m'intéresse surtout, c'est la signification de l'instruction Case 0 Or 3 (il me semble avoir vu ça en ASP mais jamais en VB).
Merci tout de même.
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Comme le dit canislupus, le Case 0 Or 3 va traiter les cas où i =0 et i = 3. Ca revient à faire Case 0 : 'ton code
Case 3 : 'le même code que pour 0

@+
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Pour le 0 OR 3, quelques précisions :

L'opérateur 'OR' fait une comparaison bit à bit entre 2 variables ou résultats de 2 expressions (plus exactement, en termes techniques une disjonction logique mais bah !).

Ex : 0 OR 1 donnera 1

dans le cas précité, si on considère que les valeurs sont de type octet (pour l'exemple), en traduisant en binaire :
0 = 00000000
3 = 00000011

0 OR 3 donne 3

1 = 00000001
3 = 00000011

1 OR 3 donne 3

4 = 00000100
3 = 00000011

4 OR 3 donne 7

8 = 00001000
3 = 00000011

8 OR 3 donne 11

etc...

Conclusion, quand on utilise des opérateurs logiques tels que OR, AND, NOT, XOR, se souvenir que la base de toute l'informatique actuelle, c'est le binaire. Aucun langage actuel n'y échappe malgré sa complexité.
On verra quand on passera aux ordinateurs quantiques mais ce n'est pas encore fait.

Bonne prog

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?