【问题标题】:For-loop modulo operatorFor循环模运算符
【发布时间】:2013-02-07 20:15:59
【问题描述】:

我明天要考试,其中一道练习题如下:

for ($i = 3; $i++; $i %= 9) { Write-Host $i } 

这个问题的答案应该是这一行的最小可能数字等于 4,最大数字等于 9。

但是,如果你问我,最大的数字是 8?因为当 $i 变为 9 时,计算结果为 0?

如果(明显)错了,请纠正我。

【问题讨论】:

    标签: powershell modulo


    【解决方案1】:

    它也会打印一个9For loop.

    for (INITIALIZATION; CONDITION; AFTERTHOUGHT) {..}
    

    AFTERTHOUGHT 在循环的 END 处执行。因此,它将执行Write-Host 9,然后执行i = 9 % 9 = 0,此时,随后检查的条件变为假。


    另外:

    i++ 是后增量是条件检查显示 0 并退出循环的原因。 如果是++i,就会出现无限循环。

    【讨论】:

    • 意味着 {} 块在事后诸葛亮之前被执行?说得通。我想这意味着 0 没有被写入主机,因为它在初始化中声明 $i = 3 ?
    • 是的。那是对的。初始化发生在最开始。
    • 完美!非常感谢!但是,在我等待批准您的回答时,我可以问您另一件小事吗?我的书指出,PowerShell 脚本中的语法错误不是终止错误。我认为这是因为它会在执行之前搜索这些错误?
    • @SiemHermans 尝试在上述声明中打错字。错误将被抛出,但for 循环将继续执行。如果需要,可以捕获和处理错误。这只是意味着执行不会因为语法错误而停止。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2012-02-09
    相关资源
    最近更新 更多