如何在 Powershell 中创建 while 循环以将小于 10 的数字计数为 0
How can I create a while loop in Powershell to count number less than 10 up to 0
我不确定 while 循环在 Powershell 中是如何工作的。我需要帮助创建一个 while 循环,该循环从 10..0 开始计算 Powershell 中的数字。
$a -eq 10
while $a -lt 10
{ $a--}
但是没有任何反应。我怎样才能更好地使用 while 循环?有没有推荐的书籍或文章来练习这种逻辑?
首先,$a -eq 10
不会将 $a
设置为 10,它会计算表达式 "does $a
equal ten" 并为您提供 true/false 值。您需要的是:
$a = 10
其次,即使您将其正确设置为 10,您的 while 循环也只会在小于 10 时启动,而事实并非如此。这实际上是一件 好事 因为它会 运行 很长一段时间 :-)
相反,您需要在它大于或等于零时继续。
根据该信息,您可以使用以下方法从 10 倒数到 0:
PS C:\Pax> $a = 10; while ($a -ge 0) { echo $a; $a--; }
10
9
8
7
6
5
4
3
2
1
0
您还可以使用更像 Powershell 的:
10..0 | foreach { echo $_; }
paxdiablo 很好地回答了您的问题并指出了您的代码和逻辑中的缺陷。我只是将此答案添加为 While
循环的简单替代方法,用于一些简单的事情,例如从 10 倒数到 0。PowerShell 将通过执行 NumberA..NumberB 或在您的案例:
10..0
如果您想对这些数字执行某些操作,您可以从那里通过管道进入 ForEach 循环,例如:
10..0 | ForEach{"Launch in T minus $_";start-sleep -sec 1};"Blast-off!"
请将此回答视为纯粹的教育。
您也可以在 PowerShell 中像这样循环。
PS> (10..0)|%{$_}
10
9
8
7
6
5
4
3
2
1
0
我不确定 while 循环在 Powershell 中是如何工作的。我需要帮助创建一个 while 循环,该循环从 10..0 开始计算 Powershell 中的数字。
$a -eq 10
while $a -lt 10
{ $a--}
但是没有任何反应。我怎样才能更好地使用 while 循环?有没有推荐的书籍或文章来练习这种逻辑?
首先,$a -eq 10
不会将 $a
设置为 10,它会计算表达式 "does $a
equal ten" 并为您提供 true/false 值。您需要的是:
$a = 10
其次,即使您将其正确设置为 10,您的 while 循环也只会在小于 10 时启动,而事实并非如此。这实际上是一件 好事 因为它会 运行 很长一段时间 :-)
相反,您需要在它大于或等于零时继续。
根据该信息,您可以使用以下方法从 10 倒数到 0:
PS C:\Pax> $a = 10; while ($a -ge 0) { echo $a; $a--; }
10
9
8
7
6
5
4
3
2
1
0
您还可以使用更像 Powershell 的:
10..0 | foreach { echo $_; }
paxdiablo 很好地回答了您的问题并指出了您的代码和逻辑中的缺陷。我只是将此答案添加为 While
循环的简单替代方法,用于一些简单的事情,例如从 10 倒数到 0。PowerShell 将通过执行 NumberA..NumberB 或在您的案例:
10..0
如果您想对这些数字执行某些操作,您可以从那里通过管道进入 ForEach 循环,例如:
10..0 | ForEach{"Launch in T minus $_";start-sleep -sec 1};"Blast-off!"
请将此回答视为纯粹的教育。
您也可以在 PowerShell 中像这样循环。
PS> (10..0)|%{$_}
10
9
8
7
6
5
4
3
2
1
0