Un decouverte avec les Select grace au Switch de PHP ;)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Un decouverte avec les Select grace au Switch de PHP ;)

Message par GallyHC »

Bonjour,

Je suppose que comme moi vous connaissez l'écriture de select comme ceci :

Code : Tout sélectionner

i= 40

Select i
  Case 10
    Debug "CASE 1"
  Case 20
    Debug "CASE 2"
  Case 30
    Debug "CASE 3"
  Case 40
    Debug "CASE 4"
  Case 50
    Debug "CASE 5"
EndSelect
Mais voila une version (on va dire "inverser" en écriture mais qui fonctionne) :

Code : Tout sélectionner

i = 100
j = 2
k = 20
l = 10

Select 1000
  Case i * j
    Debug "CASE 1"
  Case j * k
    Debug "CASE 2"
  Case k * l
    Debug "CASE 3"
  Case i * l
    Debug "CASE 4"
  Case j * l
    Debug "CASE 5"
EndSelect
Bon je suppose que pas mal connaisse cela, mais ou cas ou je partage, on sait jamais.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Un decouverte avec les Select grace au Switch de PHP ;)

Message par graph100 »

Je ne pensais pas que cela fonctionnait, mais effectivement, c'est une expression !

En revanche, il me semblait que l'intérêt principal d'un Select est de ne calculer qu'une seule fois l'expression comparée, et ainsi d'accélérer les tests multiples.
Et dans le cas ou tu as plusieurs des tes expressions qui sont justes, uniquement la première est choisie, comme pour un If / ElseIf !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Un decouverte avec les Select grace au Switch de PHP ;)

Message par PAPIPP »

Bonjour à tous
On peut même réaliser une sélection dans une boucle For.
Exemple :

Code : Tout sélectionner

Macro _q_t_
  "
EndMacro

Macro _n(__n)
  _q_t_#__n#=_q_t_+Str(__n)+" "
EndMacro
i = 100
j = 2
k = 20
l = 10
For w =0 To 1000 Step 10
Select w
  Case i * j ; =200
    Debug "CASE 1 "+_n(w)
  Case j * k ; =40
    Debug "CASE 2 "+_n(w)
  Case k * l ; =200
    Debug "CASE 3 "+_n(w)
  Case i * l ; =1000
    Debug "CASE 4 "+_n(w)
  Case j * l ; =20
    Debug "CASE 5 "+_n(w)+_n(i)+_n(j)+_n(K)+_n(l)
EndSelect
; Debug _n(w)
Next
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Un decouverte avec les Select grace au Switch de PHP ;)

Message par GallyHC »

Bonjour,

graph100> Perso voyant dans un code Php cette méthode (a eu du mal a comprendre au départ d'ailleurs), je suis demander si PB réagissez de la même façon a cela. J'ai donc fait un code bidon utilisant cette méthode.

Apres si cela à une véritable utilité en PB la je ne sais pas mais c’est par exemple utiliser dans un code PHP pour testé suis le client est sur un téléphone ou pas

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Répondre