Könnte mir jemand etwas über die Unterschiede zwischen Leim und If in JMP sagen? Ich war so verwirrt.
Vielen Dank!
Vielen Dank, Jeff! Ihre Antwort gibt mir ein klares Bild davon, wie ich JMP in Zukunft nutzen kann!
Vielen Dank, Jim! Es ist so hilfreich für mich!
Kleber() Und Wenn() sind – fast – völlig voneinander unabhängig, daher ist es schwierig, sie zu vergleichen.
Kleber
Ehrlich gesagt können Sie Glue() ignorieren und ein sehr erfolgreicher JSL-Programmierer sein.Wenn Sie das also verwirrt, machen Sie sich darüber keine Sorgen.
JSL ist eine funktionale Sprache. Das heißt, alles in JSL ist eine Funktion. Einige Funktionen in JMP verfügen über Operatorformulare.
Die Funktion zum Zuweisen eines Werts zu einer Variablen lautet beispielsweise Zuweisen(a, b) , was den Wert von b in a zuordnet.Es gibt eine Operatorform dafür, die ein =-Zeichen verwendet:
a=b
Die Funktion, die Ausdrücke zu etwas zusammenfügt, das ausgewertet werden kann, ist Glue(), wie in:
Glue(Assign(a,b), Add(c,d))
Die Operatorform von Glue() ist ein Semikolon (;), das Folgende entspricht dem Obigen:
Assign(a,b);
Add(c, d)
Wenn
In jeder Programmiersprache benötigt man Konstrukte, um Entscheidungen zu treffen. In JSL, wie auch in anderen Sprachen, sind dies der Fall bedingte Funktionen .
If() benötigt mindestens drei Argumente:
- eine Bedingung
- wahres Ergebnis
- sonst Ergebnis
Ich finde es am einfachsten, If() zu verstehen, indem ich mir den Prototyp im Formeleditor ansehe.

Beachten Sie dort das erste „expr“. Das ist die zu prüfende Bedingung und das erste Argument. Das zweite Argument, die „then-Klausel“, ist der Ausdruck, der ausgewertet werden soll, wenn die Bedingung wahr ist. Das dritte Argument ist die „else-Klausel“, der Ausdruck, der ausgewertet wird, wenn die Bedingung nicht wahr ist.
Außerhalb des Formeleditors sieht das so aus:
If( a == "some value",
Show( "True" ),
Show( "False" )
);
Dies testet also die Bedingung, dass a gleich „einem Wert“ ist, und zeigt „Wahr“ an, wenn dies der Fall ist, und „Falsch“, wenn dies nicht der Fall ist.
Jede der Klauseln kann mehrere durch Semikolons (;) getrennte Anweisungen enthalten.
Ich hoffe, dass dies dazu beiträgt, einige Verwirrung zu beseitigen.
Wenn Sie weitere Fragen haben, lassen Sie es uns wissen.
Eine „If()“-Funktion hat die Struktur:
If( condition,
run this if the condition is true
,
run this if the condition is false
)
Ein Beispiel wäre
If( :sex == "F",
Show("This is a Female")
,
Show("This is a Male")
)
Wenn nun in den Abschnitten „Wahr“ oder „Falsch“ mehr als eine Anweisung ausgeführt werden muss, kommt das „Kleber“-Zeichen ins Spiel. Die Anweisungen müssen „zusammengeklebt“ werden, um zu zeigen, dass der Abschnitt „Wahr“ oder „Falsch“ ein vollständiges Element darstellt .Wenn also sowohl Show("This is a Female") als auch Gender = "Female" ausgeführt werden müssen, müssen Sie die Anweisungen zusammenkleben
If( :sex == "F",
Show("This is a Female");
Gender = "Female"
,
Show("This is a Male")
)