Javascript while语句有哪些好的用途?
每当我想到使用Javascript while语句有哪些好的用途?,javascript,Javascript,每当我想到使用while循环,我都不明白为什么不能只使用if语句。我知道while循环在给定语句为true时运行,但是如果条件在块内瞬间终止,那么我就无法想象在“某事为true”时发生的任何事情。如果有人能举例说明我应该如何/为什么使用while循环。非常感谢。虽然是一种循环结构,而不仅仅是另一种形式的如果 var i = 0; while ( i < 10 ) { //this stuff will happen until //i < 10 // us
while循环
,我都不明白为什么不能只使用if语句
。我知道while循环在给定语句为true时运行,但是如果条件在块内瞬间终止,那么我就无法想象在“某事为true”时发生的任何事情。如果有人能举例说明我应该如何/为什么使用while循环
。非常感谢。虽然
是一种循环结构,而不仅仅是另一种形式的如果
var i = 0;
while ( i < 10 ) {
//this stuff will happen until
//i < 10
// usually you iterate the counter so it
// eventually breaks the loop because
// i < 10 is no longer true
i++;
}
var i=0;
而(i<10){
//这种事情会一直持续到
//i<10
//通常您迭代计数器,以便
//最终打破了循环,因为
//我认为10岁以下不再是真的
i++;
}
这和这一样
for (var i = 0; i < 10; i++) {
//this stuff will happen until
//i < 10
}
for(变量i=0;i<10;i++){
//这种事情会一直持续到
//i<10
}
while的良好用例
通常,当需要进行的迭代次数已知时,会使用for
循环,因此,通常当您在数组上迭代并且知道数组长度for
时,是一个不错的选择,因为您可以显式设置迭代次数
while
的一个更好的用例是当迭代量不是静态的(已知)和/或您正在等待一个事件发生以打破循环时。while循环将反复执行,只要满足条件,即如果条件从未改变,它将变为无穷大
当条件满足时,
if
将执行一次,,而
将继续运行,直到条件变为false。如果在块结束时条件仍然为真,则循环将再次运行
if
只运行一次。那么if语句将不会循环。除非你把它放在一个循环中,否则它只会发生一次。只要语句仍然为真,while语句将发生多次。如果您想创建一个无限循环,while循环就可以实现
var done=false;
while(!done){
alert("I am annoying");
}
for
语句可以模拟一段时间:
for(var i=0; i<length; i++) {}
// is the same as
var i=0;
while(i<length) {
// stuff
i++;
}
或者其他东西:
while(a != b) {
if(a > b) {
a -= b;
} else {
b -= a;
}
} // find the GCD of a and b
正如你所看到的,它与if
非常不同,并且解决了其他问题。我将尝试给你一个非常高层次的答案,因为我认为它更容易直观地理解
将所有算法都视为配方。一个典型的配方可能包含如下部分:
- 如果花生有壳,就把它和壳分开
- 把鸡蛋打至起泡
- 取5个洋葱,每个切成两半
这些类型的指导让你以不同的方式完成任务
第一个是真正的“如果”语句。如果一个条件(花生有壳)是真的,你就做些什么。你确实做到了:
if (not shelled) {
shell the peanut! // happens once
}
while(not whipped enough) {
beat egg! // happens over and over
}
for (onions 1 to 5) {
Chop an onion! // done 5 times total, once per onion
}
第二个是while循环。你在鸡蛋没有搅打和起泡的时候打它。你不停地反复(鞭打)做同样的事情,当你这样做的时候,你看着它(一遍又一遍),看看它是否变得非常起泡。一旦它有足够的泡沫和搅打,你就停止。当你停止它是因为你已经通过了你的“While”条件。需要注意的一件重要事情是,在你开始之前,你不一定知道一个鸡蛋需要多少“拍打”才能搅打它。你只需要做很多次,并且(用你的眼睛)检查很多次。你确实做到了:
if (not shelled) {
shell the peanut! // happens once
}
while(not whipped enough) {
beat egg! // happens over and over
}
for (onions 1 to 5) {
Chop an onion! // done 5 times total, once per onion
}
就像在菜谱中一样,在时间结束之前,你不希望有人做某个动作,所以你必须始终确保你的while循环有合理的停止条件。大多数while循环依赖于循环内部的某些变化,并且在该变化足够大时将停止
第三个配方示例是for循环。对于你拥有的每一个洋葱,你对那一个洋葱做一次事情。你确实做到了:
if (not shelled) {
shell the peanut! // happens once
}
while(not whipped enough) {
beat egg! // happens over and over
}
for (onions 1 to 5) {
Chop an onion! // done 5 times total, once per onion
}
我不知道一个if
语句如何接近于取代而循环,老实说:?我的错,它似乎不存在于javascript中。哈哈,我一直在思考for
循环。修正了我的措辞,但没有改变我的答案。+1是一个很好的例子,显示了三者之间的区别和正确用法。这确实帮助我想象while循环真正在做什么。谢谢