| [Syntaxe] Utilisation de Select / Case | |
|
|
Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 9:27 | |
| Bonjour, Je n'arrive pas à utiliser correctement ces fonctions. je m'explique, je ne peux pas faire ceci: - Code:
-
select i% case 1: if condition=1 ... ... else ... ... end_if case 2: if condition=1 ... ... else ... end_if end_select
Actuellement je n'ai rien trouvé d'autre que de faire ceci: - Code:
-
case 1: gosub case_1 case 2: gosub case_2 Est_ce que je suis obligé de déclarer autant de label et de gosub qu'il y a de case ? Ca m'embête d'avoir une foultitude de petites procédures contenant 3 à 4 lignes de code... de même je que je ne peux pas faire : if ... else if .... else if... end_if Comment faites vous ? | |
|
| |
Invité Invité
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 9:53 | |
| Hello (bonjour - traduction) Nardo Je ne suis pas d'accord. enlève les deux points après case tu modifies dans le programme les valeurs de i% et condition à chaque fois, et tout fonctionne. - Code:
-
dim condition,i% i%=2 condition=1 select i% case 1 if condition=1 message "condition=1, i%=1" else message "condition<>1, i%=1" end_if case 2 if condition=1 message "condition=1, i%=2" else message "condition<>1, i%=2" end_if end_select Les fins de semaines sont dures pour ceux qui travaille. Je rajoute que c'est la version du 30 juillet, la dernière je n'avais pas réussi à la télécharger. Donc si ça ne marche pas, ce serait dù à la dernière version. |
|
| |
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 10:19 | |
| Tout à fait. Il n'y a pas de deux-points après case, sauf si on veut mettre une autre instruction sur la ligne, et dans ce cas, on met un deux-points comme on le ferait d'ailleurs pour toute autre ligne que case. Exemple: - Code:
-
dim v v=2 select v case 1:print "v=1" case 2:print "v=2" case 3:print "v=3" case 4:print "v=4" case 5:print "v=5" case 6:print "v=6" end_select mais celui-ci fonctionne tout autant: - Code:
-
dim v v=2 select v case 1 print "v=1" case 2 print "v=2" case 3 print "v=3" case 4 print "v=4" case 5 print "v=5" case 6 print "v=6" end_select | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 11:36 | |
| Merci à tous les deux ! C'est peut-être la syntaxe du langage C qui m'a induit (en non enduit) en erreur... Une autre petite question et après je pense avoir fait le tour de la question. Si j'écris ceci en C : - Code:
-
switch (i%) { case 1: case 2: ... break; case 3: ... break; default: .... }
comment puis-je l'écrire en Panoramic ? stp Jack, regarde ta messagerie... | |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 16 Oct 2010 - 11:56 | |
| Il faudrait que tu nous expliques à quoi sert le break en langage C et aussi le default. Si c'est pour faire une sorte de exit_select, ça n'existe pas en panoramic, on peut toujours utiliser un goto ou faire de façon plus structurelle... ? | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 12:03 | |
| En gros mon exemple signifie :
si i% est égal à 1 ou 2 faire: .... sinon si i% est égal à 3 faire: .... sinon : (default) .... fin_si
le break indique qu'il faut sortie du case... si j'enleve le break qui se trouve au dessus de case 3 cela équivaut à:
si i% est égal à 1 ou 2 faire: .... fin_si si i% est égal à 3 ou 2 ou 1 faire: .... sinon: (le default) ... fin_si
bon l'exemple est court, mais dans le cas ou il y a par exemple une bonne dizaine de 'case' l'utilisation de select/end_select devient intéressante...
| |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 16 Oct 2010 - 12:20 | |
| Le select_case n'est pas si perfectionné en panoramic. Si tu veux faire comme tu dis (1 ou 2), tu peux employer des gosub, histoire de ne pas répéter deux fois le même sous-programme. Exemple : - Code:
-
select a% case 1 : gosub tralala case 2 : gosub tralala case 3 : ' faire ceci case 4 : ' faire cela case 5 : gosub boum case 6 : gosub boum end_select
| |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 12:26 | |
| Merci jjn4, C'est bien ce qui me semblait,mais j'ai quand même posé la question au cas où... il aurait été intéressant d'avoir une syntaxe du style: - Code:
-
select i% case 1,2 ... exit_select case 3 ... exit_select default: .... end_select
ben va falloir faire avec des gosub... | |
|
| |
Invité Invité
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 12:36 | |
| C'est vrai que case default serait la bien venu. Mais on peut contourner ce manque - Code:
-
dim condition,i% i%=3 condition=1 select i% case 1 if condition=1 message "condition=1, i%=1" else message "condition<>1, i%=1" end_if i%=0 case 2 if condition=1 message "condition=1, i%=2" else message "condition<>1, i%=2" end_if i%=0 end_select if i%>0 then message "autre teste" Si on tape une valeur autre que 1 et 2 ici, on traite la demande Normalement on peut modifier i%, vu que i%a été traité. Sinon avoir une variable qui copie i% avant select. |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Syntaxe] Utilisation de Select / Case Sam 16 Oct 2010 - 13:27 | |
| merci cosmos pour l'astuce ! c'est tout simple le traitement du default... | |
|
| |
Contenu sponsorisé
| Sujet: Re: [Syntaxe] Utilisation de Select / Case | |
| |
|
| |
| [Syntaxe] Utilisation de Select / Case | |
|