2016-07-26 12 views
3

Ich versuche, Text basierend auf einer Benutzereingabe anzuzeigen. Zum Beispiel sollte die Eingabe von APPLE BANANA anzeigen.Wenn Then-Anweisung alle Möglichkeiten anzeigt

Dieser Code-Schnipsel funktioniert:

:Input X 
:If X=APPLE 
:Disp "BANANA" 

Aber ich bin nicht sicher, wie dies zu bauen off eine Reihe von Prüfungen zu machen:

:Input X 
:If X=Apple 
:Disp "BANANA" 
:If X=LEMON 
:Disp "LIME" 
:If X=PEACH 
:Disp "PEAR" 

Wenn ich dies tun, zeigt es BANANEN, KALK und PEAR in dieser Reihenfolge, unabhängig davon, was ich tatsächlich eingegeben habe. Was vermisse ich?

Antwort

2

Versuchen Sie, Ihr Snippet neu zu schreiben, um Str1 anstelle von X zu verwenden. Dies stellt sicher, dass Sie einen Stringtyp mit einem anderen Stringtyp vergleichen.

:Input Str1 

:If Str1="APPLE" 
:Then 
:Disp "BANANA" 
:End 

:If Str1="LEMON" 
:Then 
:Disp "LIME" 
:End 

:If Str1="PEACH" 
:Then 
:Disp "PEAR" 
:End 
+0

Hallo, wenn ich versuche, dies, I:

Input Str1 If Str1="APPLE Disp "BANANA If Str1="LEMON Disp "LIME If Str1="PEACH Disp "PEAR 

den obigen Code Angenommen, ein ganzes Programm ist, kann es zu verkürzen ERR: DATENTYP – matlabconqueso

+0

@Sean Ich habe das Snippet aktualisiert. Probieren Sie es aus? – 4444

+1

Es funktioniert! Vielen Dank! – matlabconqueso

0

Die akzeptierte Antwort ist korrekt, aber es verwendet unnötige Then/End-Anweisungen und Ende Anführungszeichen für insgesamt 18 Bytes extra. Ich würde diesen Code empfehlen, die mehr ähneln dem Original:

Input Str1 
If Str1="APPLE <-- you can remove this line if you know there will be no invalid input 
"BANANA 
If Str1="LEMON 
"LIME 
If Str1="PEACH 
"PEAR 
Ans