首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么乘法不适用于Read-Host值

为什么乘法不适用于Read-Host值
EN

Stack Overflow用户
提问于 2016-07-16 18:30:50
回答 5查看 2.2K关注 0票数 3
代码语言:javascript
复制
$table_num = Read-Host -Prompt 'Enter the table number you want to get printed'
for ($i=1; $i-lt 11; $i++){
    $ans = ($table_num*$i)
    write "$table_num*$i=$ans"
}

上面是我试图执行的脚本,我得到的结果如下:

代码语言:javascript
复制
Enter the table number you want to get printed: 5
5*1=5
5*2=55
5*3=555
5*4=5555
5*5=55555
5*6=555555
5*7=5555555
5*8=55555555
5*9=555555555
5*10=5555555555

我是一个脚本新手,并帮助我编写代码。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-07-19 18:22:17

谢谢你的回答!

实际上,我已经添加了数据类型int。脚本很好,如下所示。

代码语言:javascript
复制
$table_num = Read-Host -Prompt 'Enter the table number you want to get printed'

        For ($i=1; $i-lt 11; $i++){
        $ans = ([int]$table_num*$i)
            write "$table_num  *  $i =  $ans"
        }
票数 1
EN

Stack Overflow用户

发布于 2016-07-16 18:45:31

由于您没有指出预期行为是什么,我不确定是否解决了您的问题,但我猜您想要这样的东西

代码语言:javascript
复制
$table_num_str = Read-Host -Prompt 'Enter the table number you want to get printed'
$table_num = [int]::Parse($table_num_str)
for ($i=1; $i-lt 11; $i++){
    $ans = ($table_num*$i)
    write "$table_num*$i=$ans"
} 

当输入'5‘时,结果是

代码语言:javascript
复制
Enter the table number you want to get printed: 5
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
5*10=50

所以问题是,Read-Host返回一个string,当与X相乘时,该字符串重复X次。

票数 1
EN

Stack Overflow用户

发布于 2016-07-16 18:57:53

问题存在于Read-Host cmdlet返回的类型中。

代码语言:javascript
复制
$num = read-host
$num.GetType()

它返回Object[],如果需要,它会隐式转换为其他类型。当使用二元运算符(+,-,*)时,类型也会转换为第一个参数类型。object[]类型中没有*运算符。这就是为什么它被转换成字符串,然后乘以的原因。如果第一个参数是int,PowerShell也会尝试将其转换为int。您可以调整代码以使用此转换规则。看看下面的脚本:

代码语言:javascript
复制
$table_num = Read-Host -Prompt 'Enter the table number you want to get printed'
1..10 | % { write "$table_num*$_=$($_*$table_num)" }

它还产生:

代码语言:javascript
复制
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
5*10=50
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38410213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档