如何在 Maxima 中打破循环

问题描述 投票:0回答:2

我是 Maxima 的新手。我正在尝试编写一个循环,检查是否满足某些条件然后退出循环。

cp:for i:1 step 1 thru 10 do
block(if(i>6) then break()
else
print(i,"is less than 6"));

我想要输出:
1 小于 6
2 小于 6
3 小于 6
4 小于 6
5 小于 6
6 小于 6

但是当我运行上面的代码时:

打印6小于6后提示 输入 Maxima 断点。输入“退出”;恢复。
并在输入 exit 后;它会再次显示上面的消息

我希望代码能够完全从该循环中出来,而不是要求输入 exit;

提前谢谢你..

maxima wxmaxima
2个回答
3
投票

尝试使用

return(i)
而不是
break()
。另外,
return
仅从包围它的块返回,因此您需要删除示例中的
block(...)
(无论如何都不需要)。我认为这有效:

cp: for i:1 step 1 thru 10 
      do if(i>6) then return(i) else print(i,"is less than 6");

0
投票

这是我尝试过的,它有效,但仍然不是很优雅。

flag:1;
for k : 1 while k<=10*flag do 
    if (k>3) then (
        print("break !"),
        flag:0)
else 
    print (flag,k);
© www.soinside.com 2019 - 2024. All rights reserved.