【发布时间】:2021-04-14 04:33:34
【问题描述】:
我正在尝试执行这个简单的 while 循环,但它不起作用。编译器没有给出任何类型的错误或警告,但是当我尝试运行我的函数时,它会进入无限循环:
let example x =
let k = ref x in
while (!k > 42) do
if ( (!k mod 5) == 0) then (
k:= !k/2
);
done;
if(!k<42) then (
Printf.printf "k is less than 42"
);
if(!k == 42) then (
Printf.printf "k is equal to 42"
)
;;
【问题讨论】:
-
k = 43,然后..?
-
@user2864740 抱歉,我刚刚添加了我只是想简化的其余代码
-
遵循代码的逻辑,而
k大于 42,k只有在它是 5 的倍数时才会更新。似乎有 很多k永远不会在循环中更新的情况。编辑:我看到了 Jeffrey Scofield 的回答。
标签: while-loop ocaml infinite-scroll