Scilab 中输入命令的奇怪行为

Weird behavior of the input command in Scilab

我希望我的学生像这样使用 Scilab 编写一个小游戏:

a=ceil(100*rand())
disp("I think of a number between 1 and 100. Which one ?")
guess=0
while(guess<>a) do
    guess= input("Guess :")
    if (a>guess) then
        disp("+")
    elseif (a<guess) then
        disp("-")
    end
end

disp("You got it")

但是第一个输入和最后一个输入有一些奇怪的行为。在第一次输入后,有时我没有答案(但有时我有),我又被问到 "Guess",但这次在控制台上有一个通常的提示 -->。我可以放任何东西,这对程序来说似乎无关紧要。但是程序并没有结束,就在它 returns 到预期的行为之后。

最后,在"You got it"之后,似乎还有一些输入。在我再次收到 --> 之前,我收到了一两次提示。

控制台可能如下所示:

Guess :
50
Guess :
--> 50
Guess :
50



 +
Guess :
75


 -
Guess :

我不明白为什么 Scilab 会有这样的反应。

我经历过很多次,这是 Scilab 6.0.0 input() 中的一个已知错误:

第一个link也提供了一个解决方法,但我不会说它适合学生。由于@Desire 无法重现该错误,我建议您将 Scilab 降级到 5.5.1 版,并告诉您的学生也这样做。