papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Phénomène curieux Jeu 4 Oct 2012 - 3:13 | |
| Salut tout le monde. J’ai constaté un phénomène curieux avec l’appel conditionnel d’un sous programme par GOSUB ou par GOTO et aussi par l’appel d’une procédure SUB. - Code:
-
IF .... THEN GOSUB .... IF .... THEN GOTO .... IF .... THEN proc()
Le code précédent ne fonctionne correctement que si et seulement si, il n’y a pas plus d’un seul espace avant et après GOSUB ou GOTO L’appel de la procédure provoque une erreur si un ou plusieurs espaces précédent le nom de la procédure, mais cette erreur disparait s’il existe une autre instruction sur la même ligne séparée par deux-points. Ce code est correct. Ajoutez des espaces comme indiqué dans les REM et constatez vous-même l’effet. - Code:
-
dim i : i = 1 label suite,fin
' Ajouter un (ou plusieurs) espace AVANT ou APRES gosub, provoque une erreur ' Ajouter un (ou plusieurs) espace AVANT ou APRES goto, provoque une erreur ' Ajouter un (ou plusieurs) espace AVANT l'appel de la procédure, provoque ' une erreur. Mais dans ce dernier cas (et contrairement aux GOSUB et GOTO) ' l'erreur disparait si on ajoute une autre instruction sur la même ligne, ' separée par deux-points même s'il y a plusieurs espaces après THEN.
if i = 1 then gosub suite if i = 1 then encore() if i = 1 then goto fin end suite: print "suite" return SUB encore() print "encore" END_SUB fin: print "fin"
| |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Phénomène curieux Jeu 4 Oct 2012 - 7:26 | |
| Oui je l'avais déjà constaté, mais je l'ai adopté comme une mauvaise syntaxe... Regarde ceci - Code:
-
dim i : i = 1 label suite,fin
' Ajouter un (ou plusieurs) espace AVANT ou APRES gosub, provoque une erreur ' Ajouter un (ou plusieurs) espace AVANT ou APRES goto, provoque une erreur ' Ajouter un (ou plusieurs) espace AVANT l'appel de la procédure, provoque ' une erreur. Mais dans ce dernier cas (et contrairement aux GOSUB et GOTO) ' l'erreur disparait si on ajoute une autre instruction sur la même ligne, ' separée par deux-points même s'il y a plusieurs espaces après THEN.
if i = 1 then gosub suite:' if i = 1 then encore():' if i = 1 then goto fin:' end suite: print "suite" return SUB encore() print "encore" END_SUB fin: print "fin"
A+ | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Phénomène curieux Jeu 4 Oct 2012 - 20:26 | |
| Merci Jean Claude.
J’en tiendrais compte.
| |
|
Contenu sponsorisé
| Sujet: Re: Phénomène curieux | |
| |
|