如何将数组中的数字相加

se0*_*e09 2 arrays powershell

我是学习 powershell 的新手,希望最终能进一步加深我在其他程序中的经验。目前正在修读 It 课程和我的 powershell 课程,lopps 已成为我的敌人。在我们必须制作的一个脚本中,我们需要创建一个脚本,该脚本将在单击按钮后添加数组中输入的数字,在这种情况下,该按钮为“0”。我尝试过各种脚本,但不断收到错误,任何帮助将不胜感激,并请记住我是新来的,所以现在的响应越简单越好,它将帮助我,如果可能的话解释为什么我的代码是错误的

Do {

    $input = Read-Host 'Enter variety of numbers and press 0 to add them together'

    if ($input -eq '0') {
        $sum = [int]$sum + ',' + [int]$sum
        Write-Host 'Sum of numbers entered' $sum
    }

}
while ($input -ne '0')
Run Code Online (Sandbox Code Playgroud)

von*_*ryz 6

首先,$input是一个自动变量,因此使用它进行用户输入会导致意外的行为。

请注意,Powershellish 方法是使用内置 cmdlet,例如Measure-Object可以对事物求和的命令。就像这样,

$i = Read-Host 'Enter variety of numbers, separated by space. Press <Enter> to add them together'
Write-host "The grand total is" ($i -split ' '  | measure-object -sum).sum
Run Code Online (Sandbox Code Playgroud)

输入作为字符串读入$i。由于字符串本身有点难以求和,因此-split使用运算符将​​其拆分为多个内容。空格' '用作分割的分隔符。结果是通过管道传输到的对象数组Measure-Object。它足够聪明,可以发现这些东西实际上是整数,因此求和是有意义的。由于 cmdlet 返回有关其输入的多个数字,.sum因此仅用于访问总和。