Select... case... endSelect

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Select... case... endSelect

Message par Golfy »

Ayant souvent utilisé des basics évolués (RapidQ, Visual Basic et GFA basic), je pense que l'amélioration des fonctions "Select... Case" gagnerai en lisibilité dans un programme.
Exemple:

Code : Tout sélectionner

If caracter > 64 and caracter < 91
   action 1    ; A - Z
ElseIf caracter > 96 and caracter < 123
   action 2    ; a - z
ElseIf caracter > 47 and caracter < 58 or caracter = 44 or caracter = 46
   action 3    ; decimals and . or ,
EndIf
devient

Code : Tout sélectionner

Select caracter
Case 65 to 90
   action 1
Case 97 to 122
   action 2
Case 48 to 57, 44, 46
   action 3
EndSelect
Pour le pré-compilateur (?) il suffit juste de remplacer le code Select... case par les If... ElseIf correspondant et -- éventuellement -- ajouter un "exit" avant chaque nouveau "case" (et encore plus optionnellement, une fonction "continue" qui empèche le "exit" par défaut).

Golfy
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

C'est vrai que ça serai pratique :wink:
Tant qu'on y est, dans le même ordre d'idée : qu'on puisse remplacer

Code : Tout sélectionner

If  x > a And x < b
par

Code : Tout sélectionner

If  a < x < b
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Dans le musée ce sujet avait été abordé et (de mémoire) Denis je crois (excuse moi si je me trompe :oops: ) avait dis que se serait trop dur à mettre en ouvre. Mais c'est vraiq ue se serait pratique
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message par Golfy »

Ca y est :lol: : la version 4 permet enfin le select-case :

Code : Tout sélectionner

For t = 0 To 20
  Select t
    Case 0 To 4
      Debug "inférieur à 5"
    Case 2,4,6,8,10,12,14,16,18,20
      Debug "Pair"
    Case 5 To 15
      Debug "Entre 5 et 15"
    Default
      Debug "Cas imprévu"
  EndSelect
  Debug "----------------------"
Next t
Résultat :

Code : Tout sélectionner

inférieur à 5
----------------------
inférieur à 5
----------------------
inférieur à 5
----------------------
inférieur à 5
----------------------
inférieur à 5
----------------------
Entre 5 et 15
----------------------
Pair
----------------------
Entre 5 et 15
----------------------
Pair
----------------------
Entre 5 et 15
----------------------
Pair
----------------------
Entre 5 et 15
----------------------
Pair
----------------------
Entre 5 et 15
----------------------
Pair
----------------------
Entre 5 et 15
----------------------
Pair
----------------------
Cas imprévu
----------------------
Pair
----------------------
Cas imprévu
----------------------
Pair
----------------------
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Et pour être encore plus clair pourquoi ne pas utiliser tout ce qiu est à disposition ?

Code : Tout sélectionner

Select caracter
  Case 'A' To 'Z'
     ;action 1
     
  Case 'a' To 'z'
     ;action 2
     
  Case '0' To '9', '.', ','
     ;action 3
     
EndSelect
Dri ;)
Répondre