【问题标题】:Infinite loop error by using while statement使用while语句出现无限循环错误
【发布时间】:2016-09-28 04:10:03
【问题描述】:

我想知道为什么这是一个无限循环。

脚本如下:

   x=1;
   while x<5;
     x=2;
     x=x+2;
     if x==4;
       x=x-1;
     end 
   end

【问题讨论】:

  • 为什么这被标记为 C++?
  • 为什么会出现在这里?用铅笔和纸自己解决!
  • 我对语法有点不熟悉,但看起来他们在每次迭代时都将 x 设置为 2,如果 x 达到 4,它们会减去 1,所以显然 x 不可能达到 5。事实上,如果我读到这个正确的 x 应该在每次迭代结束时包含 3(如果我错了,请纠正我)。
  • 因为你总是在while循环中定义x=2,所以在循环结束时x总是3。
  • 您能否首先说明您想要完成的工作,以便我们提出替代方案?

标签: vector matlab-guide


【解决方案1】:

逐步了解为什么 x 总是小于 5:

x=1;
while x<5;
  x=2; // You set x to 2 at the beginning of every single iteration
  x=x+2; // At this point, x == 4
  if x==4; // The "if" is unnecessary - of COURSE x == 4 - how could it possibly be anything else?
    x=x-1; // x now contains 3
  end
end

在每次迭代开始时,x == 2。在迭代结束时,x == 3。

【讨论】:

    猜你喜欢
    • 2022-12-31
    • 1970-01-01
    • 2013-03-26
    • 2021-05-12
    • 1970-01-01
    • 2013-05-17
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多