如何在不运行代码的情况下确定代码的结果

lot*_*e07 1 matlab

如果我得到下面的代码,我怎么知道结果的y值是什么。如果这是一个简单的问题,我深表歉意,但是我发现这类问题非常困难。

对于foo(-1,10)

function y = foo(x, a)
for k=-1:0
b=x-k;
while (x > -2) && (x < 2)
x=x+a+1;
end
end
y = b + x;
end
Run Code Online (Sandbox Code Playgroud)

运行该程序时,我可以看到b = 10,但我不知道您如何得到它。如果有人可以让我更清楚我将不胜感激。

谢谢!

dus*_*os3 5

从顶部开始:

foo(x, a)有两个参数:xa

foo(-1, 10)意味着x = -1a = 10

从那里往下走。

b = x - k 将开始为 b = -1 + (the value of k on that current iteration of the loop

然后,您将对while循环执行相同的操作。

x = -1 + 10 + 1

所以,

x = 10

现在获取该值并将其插入while循环条件:

(10 > -2) and (10 < 2)

这个条件是真的吗?否。因此,您继续进行下一个迭代for loop

最后,将您设置为y等于您获得b的值+您获得的值x