zhang-snail

导航

 

(11)Powershell赋值运算符(二)

上一节介绍了Powershell赋值运算符中的 = ,+= , -= ,详细内容参考这里

本节介绍Powershell赋值运算符中的 *= , /= , %= , ++ , -- 。


1.乘法赋值运算符 (*=)

乘法赋值运算符 (*=) 对数字值执行乘法或追加指定数目的变量字符串值副本。如果变量是单个数字值,则将该值与运算符右侧的值相乘,并将结果赋值给变量。例如:

PS C:\Users\tiand>  $a=2

PS C:\Users\tiand> $a*=5

PS C:\Users\tiand> $a
10

在上面的语句中,*= 运算符组合了两个运算。首先执行乘法,然后赋值。因此,以下语句是等效的:

$a*=3    <=>    $a=($a * 3)

如果变量包含字符串值,则 PowerShell 将指定数目的字符串追加到该值,相当于将字符串复制指定的倍数,然后赋值,例如:

PS C:\Users\tiand> $a="Powershell"

PS C:\Users\tiand> $a *= 3

PS C:\Users\tiand> $a
PowershellPowershellPowershell

需要注意的是不可以对两个字符串进行相乘操作,即以下语句是无效的。
PS C:\Users\tiand> $a="Powershell"

PS C:\Users\tiand> $a *= "Powershell"
値 "Powershell" を型 "System.Int32" に変換できません。エラー: "入力文字列の形式が正しくありません。"
発生場所 行:1 文字:1
+ $a *= "Powershell"
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) []、RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

要对数组的元素执行乘法,需要使用索引标识要执行乘法的元素。例如,下面的命令使数组中第一个元素( 索引位置 0 )乘以 4。
PS C:\Users\tiand> $a=1,2,3

PS C:\Users\tiand> $a[0] *= 4

PS C:\Users\tiand> $a
4
2
3


2. 除法赋值运算符 (/=)

除法赋值运算符 (/=) 使数字值除以在运算符右侧指定的值。除法运算符不能用于处理字符串变量。/= 运算符组合了两个运算。首先执行除法,然后赋值。因此,以下两个语句是等效的:

$a /= 2     <=>    $a = ($a / 2)

例如下面的命令使用 /= 运算符对变量的值执行除法:

PS C:\Users\tiand> $a = 8

PS C:\Users\tiand> $a /= 4

PS C:\Users\tiand> $a
2

与乘法赋值运算符类似,如果需要需要对数组元素执行,需要指定元素的下标(索引)。

3. 模赋值运算符 (%=)

模赋值运算符 (%=) 使变量的值除以运算符右侧的值,将余数赋值给变量,即取余操作,与除法赋值运算符类似,两个操作时数字时,才能使用此运算符。如果变量包含字符串变量或数组,则不能使用此运算符。%= 运算符组合了两个运算。首先,执行除法运算并确定余数,然后将余数赋予变量。因此,以下语句是等效的:

$a %= 4    <=>   $a = ($a % 4)

下面的语句使用 %= 运算符保存商的模(余数):

PS C:\Users\tiand> $a = 9

PS C:\Users\tiand> $a %= 4

PS C:\Users\tiand> $a
1

4. 递增运算符(++)和递减运算符(--)

递增运算符 (++) 使变量的值增加 1。在简单语句中使用递增运算符时,默认不返回任何值。要查看变量结果,请输入变量名称。例如:

PS C:\Users\tiand> $a=5

PS C:\Users\tiand> ++$a

PS C:\Users\tiand> $a
6

如果要强制返回值,需要将变量和运算符括在圆括号内。例如:
PS C:\Users\tiand> $a=5

PS C:\Users\tiand> (++$a)
6

递增运算符有前缀(递增运算符放在变量之前)和后缀(递增运算符放在变量之后)。如果前缀形式,则在变量的值用于语句之前使变量递增(先自增,后运算)。例如:

PS C:\Users\tiand> $a=4

PS C:\Users\tiand> $b = ++$a

PS C:\Users\tiand> $b
5

PS C:\Users\tiand> $a
5

如果是后缀形式,则在变量的值用于语句之后使变量递增(先运算,后自增)。例如对比下面的语句和上面语句执行的不同,$b的值并没有在$a++后立刻改变:
PS C:\Users\tiand> $a=4

PS C:\Users\tiand> $b = $a++

PS C:\Users\tiand> $a
5

PS C:\Users\tiand> $b
4

递减运算符和递增运算符完全类似,请自行类推。 需要注意的是,递增和递减运算符一般用在循环结构中,重复判断某一变量是否满足一定条件以此来进行下一步运算,会在Powershell的循环部分讲到,现在你可以理解为Java或是C#中的for循环的递增变量i。
posted on 2024-01-20 09:24  zhang-snail  阅读(24)  评论(0编辑  收藏  举报