Quelqu'un pourrait-il me donner quelques idées sur les différences entre la colle et if dans jmp ? J'étais tellement confus.
Merci beaucoup!
Merci beaucoup Jeff! Votre réponse me donne une idée claire de la façon d’utiliser JMP à l’avenir !
Merci beaucoup Jim! Cela m'est tellement utile !
Colle() et Si() sont – presque – totalement indépendants, il est donc difficile de les comparer.
Colle
En toute honnêteté, vous pouvez ignorer Glue() et devenir un programmeur JSL très performant.Donc, si cela vous déroute, ne vous inquiétez pas.
JSL est un langage fonctionnel. Autrement dit, tout (ish) dans JSL est une fonction. Certaines fonctions de JMP ont des formulaires d'opérateur.
Par exemple, la fonction pour attribuer une valeur à une variable est Attribuer(a, b) , qui attribue la valeur de b dans a.Il existe une forme d'opérateur utilisant un signe = :
a=b
La fonction qui rassemble les expressions en quelque chose qui peut être évalué est Glue(), comme dans :
Glue(Assign(a,b), Add(c,d))
La forme opérateur de Glue() est un point-virgule (;), ce qui suit est l'équivalent de ce qui précède :
Assign(a,b);
Add(c, d)
Si
Dans n'importe quel langage de programmation, vous avez besoin de constructions pour prendre des décisions. En JSL, comme dans d'autres langages, ce sont fonctions conditionnelles .
If() prend au moins trois arguments :
- un conditionnel
- vrai résultat
- sinon résultat
Je trouve qu'il est plus facile de comprendre If() en regardant son prototype dans l'éditeur de formule.

Notez le premier "expr" ici. C'est la condition à tester et c'est le premier argument. Le deuxième argument, la "clause then", est l'expression qui doit être évaluée si la condition est vraie. Le troisième argument est la « clause else », l'expression à évaluer si la condition n'est pas vraie.
En dehors de l'éditeur de formule, cela ressemble à :
If( a == "some value",
Show( "True" ),
Show( "False" )
);
Ainsi, cela teste la condition selon laquelle a est égal à "une certaine valeur" et affiche "Vrai" si c'est le cas et "Faux" si ce n'est pas le cas.
Chacune des clauses peut contenir plusieurs instructions, séparées par des points-virgules (;).
J'espère que cela aidera à dissiper une certaine confusion.
Si vous avez d'autres questions, faites-le-nous savoir.
Une fonction "If()" a la structure de :
If( condition,
run this if the condition is true
,
run this if the condition is false
)
Un exemple serait
If( :sex == "F",
Show("This is a Female")
,
Show("This is a Male")
)
Maintenant, là où un caractère « Coller » entre en jeu, c'est si dans les sections vraies ou fausses, plus d'une instruction doit être exécutée, les instructions doivent être « collées » ensemble pour montrer que la section vraie ou fausse est un élément complet. .Donc, si les deux : Show("This is a Female") et Gender = "Female" doivent être exécutés, vous devez "Coller" les instructions ensemble.
If( :sex == "F",
Show("This is a Female");
Gender = "Female"
,
Show("This is a Male")
)