Оператор If Then отображает все возможности

Я пытаюсь отобразить текст на основе ввода пользователя. Например, ввод слова APPLE должен отображать BANANA.

Этот фрагмент работает нормально:

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

Но я не уверен, как построить это, чтобы сделать серию проверок:

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

Если я это сделаю, он отобразит BANANA, LIME и PEAR в указанном порядке, независимо от того, что я на самом деле ввожу. Что мне не хватает?


person matlabconqueso    schedule 26.07.2016    source источник


Ответы (2)


Попробуйте переписать свой фрагмент, чтобы использовать Str1 вместо X. Это гарантирует, что вы сравниваете тип строки с другим типом строки.

:Input Str1

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

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

:If Str1="PEACH"
:Then
:Disp "PEAR"
:End
person 4444    schedule 26.07.2016
comment
Здравствуйте, когда я пытаюсь это сделать, я получаю ERR:DATA TYPE - person matlabconqueso; 26.07.2016

Принятый ответ правильный, но в нем используются ненужные операторы Then/End и конечные кавычки, всего 18 дополнительных байтов. Я бы рекомендовал этот код, который больше похож на ваш оригинал:

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

Предполагая, что приведенный выше код представляет собой целую программу, его можно сократить до:

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
person Timtech    schedule 18.09.2016