while (--i) 什么时候使用?
When is while (--i) used?
我知道 while 循环会继续 运行 "While something is true"
但是我什么时候使用
while (--i)
我明白这是说 "while decrements i is true"
我确定我对这个说法的理解是错误的。
我希望有人能给我一个例子,说明什么时候会用到它。
我认为它就像一个 if 语句,当 i 减小时它会继续发生。
数回 falsy
个结果,或更直白:
虽然 --i 的结果不计算为 false(即 0),但做一些事情。
在Java脚本中:
var i = 4;
while (--i) // try also i--
{
alert("we still have time " + i);
}
在某些语言中,当用作 布尔值 时,大于 0 的 数字 被视为 true (我认为在 C 中这会起作用)。在这种情况下(JavaScript as myf pointed)你将迭代直到 i 不再大于 0 的那一刻。尝试 --i
和 i--
来查看数量的差异迭代次数。
在 Java 等其他语言中,a_horse_with_no_name 提到的 C# 你必须指出这是一个布尔运算,例如while ( --i > 0)
。 C# 编译器说的是:
Cannot implicitly convert type 'int' to 'bool'
你有时会看到
var i = 4;
while(--i) {
// Code to repeat 4 times
}
作为更简洁的写作方式
for (var i = 0; i < 4, i += 1) {
// Code to repeat 4 times
}
但阅读起来也可能更加混乱(特别是如果您不知道 JavaScript 中的零是假的)。我通常更喜欢后一种形式。
我知道 while 循环会继续 运行 "While something is true"
但是我什么时候使用
while (--i)
我明白这是说 "while decrements i is true"
我确定我对这个说法的理解是错误的。
我希望有人能给我一个例子,说明什么时候会用到它。
我认为它就像一个 if 语句,当 i 减小时它会继续发生。
数回 falsy
个结果,或更直白:
虽然 --i 的结果不计算为 false(即 0),但做一些事情。
在Java脚本中:
var i = 4;
while (--i) // try also i--
{
alert("we still have time " + i);
}
在某些语言中,当用作 布尔值 时,大于 0 的 数字 被视为 true (我认为在 C 中这会起作用)。在这种情况下(JavaScript as myf pointed)你将迭代直到 i 不再大于 0 的那一刻。尝试 --i
和 i--
来查看数量的差异迭代次数。
在 Java 等其他语言中,a_horse_with_no_name 提到的 C# 你必须指出这是一个布尔运算,例如while ( --i > 0)
。 C# 编译器说的是:
Cannot implicitly convert type 'int' to 'bool'
你有时会看到
var i = 4;
while(--i) {
// Code to repeat 4 times
}
作为更简洁的写作方式
for (var i = 0; i < 4, i += 1) {
// Code to repeat 4 times
}
但阅读起来也可能更加混乱(特别是如果您不知道 JavaScript 中的零是假的)。我通常更喜欢后一种形式。