while语句的一些好用途是什么?

0x4*_*2D2 -1 javascript

每当我想到使用它时while loop,我都不明白为什么我不能只使用它if statement.我知道while循环运行'while'给定的语句是真的,但是如果条件瞬间在块内终止,那么我无法看到发生的任何事情,而'有些事情是真的.如果有人能给我一些如何/为什么我应该使用的例子while loop.非常感谢.

Sim*_*ris 7

我将尝试给你一个非常高级的答案,因为我认为直观地掌握它会更容易.

将所有算法都视为食谱.典型配方可能包含如下所示的部件:

  • 如果花生有壳,将其与壳分开
  • 打一个鸡蛋,直到它被搅打和起泡
  • 取5个洋葱,将每个洋葱切成两半

这些类型的方向让您以不同的方式完成任务.

第一个实际上是一个"if"语句.如果条件(花生有壳)是真的,你会做点什么.你真的这样做:

if (not shelled) {
  shell the peanut! // happens once
}
Run Code Online (Sandbox Code Playgroud)

第二个是while循环.你打鸡蛋,而它不是鞭打和起泡.你一遍又一遍地做同样的事情(鞭打),你这样做(一遍又一遍)来检查它,看它是否已经变得非常起泡.一旦它起泡并充分搅打,你就会停下来.当你停止它是因为你已经通过你的"同时"条件.需要注意的一件重要事情是,在开始之前,你不一定知道将鸡蛋鞭打多少"节拍".你必须多次这样做并多次检查(用你的眼睛).你真的这样做:

while(not whipped enough) {
  beat egg! // happens over and over
}
Run Code Online (Sandbox Code Playgroud)

就像在食谱中一样,你不希望有人在时间结束前做某个动作,所以你必须始终确保你的while循环有合理的停止条件.大多数while循环依赖于循环内部的某些变化,并且当该东西发生了足够的变化时会停止.


第三个配方示例是for循环.对于你拥有的每个洋葱(5)你只对那个洋葱做一次.你真的这样做:

for (onions 1 to 5) {
  Chop an onion! // done 5 times total, once per onion
}
Run Code Online (Sandbox Code Playgroud)