这个功能来自“Eloquent Javascript”一书,第3章,功能。
我不明白剧本的行为。
这是一个“for循环”,其任务是使计数值等于0且小于0.
一开始我认为它会阻止程序,但程序很聪明。它如何跨越这个循环。 这是片段:
private async void button1_Click(object sender, EventArgs e)
{
const int size = 5;
int[] values = new int[size];
int index = 0;
string path = "nav.txt";
StreamReader input = File.OpenText(path);
while (index < values.Length && !input.EndOfStream)
{
values[index] = int.Parse(await input.ReadLineAsync());
index++;
}
foreach (int value in values)
listBox1.Items.Add(value);
}
repl.it中的输出
var power = function (base, exponent) {
var result = 1;
for(var count = 0; count < exponent; count ++) {
//repeat as many as needed the self multiplication.
console.log("count = ", count);
result *= base;
console.log(result);
}
return result;
};
console.log("finally we get the number ", power(2, 0));
/* A little question with exponent = 0
Why is that not an error. It is impossible to initiate
with count = 0 && count < exponent.
Weird.*/
答案 0 :(得分:0)
因为count < exponent
或更确切地说0 < 0
是false
,所以循环不会运行,并且当result
被定义为{1
时,它会返回var result = 1;
for(var count = 0; false; count ++) {
// This doesn't run
}
return result; // So it's still 1
的值1}}:
CURSOR cFunnyCursor (
v1 NUMBER,
v2 NUMBER
) IS
SELECT * FROM TABLE
WHERE col1 = v1
AND col2 != v2
AND col3 = CONSTANT;
答案 1 :(得分:0)
感谢fuyushimoya,我理解:
循环中的第一个语句出现在名为“result”,
的变量的初始化之后我错误地认为for循环的括号内的文字意味着:
我们有一个计数值数组:[第一个是0,最后一个是指数-1]。 正如我在索引0处所说的那样,count项为“0”,并且该数组的长度为“exponent”。因此,如果数组为空,则该语句不能为真,因为索引0不存在,因为程序将被停止。
但现在我终于明白了:
for循环括号内的文字说: 如果count的最大值小于指数且小于0, 然后我们将结果的值增加到:result * base。 - 但是在电源(2,0)的情况下,条件未经验证,则没有增量。 称为“结果”的值仍处于初始状态,即在循环开始之前。