perl语言foreach用法
一个求和公式foreach(@_){$sum=$sum+shift(@_);}print"$sum.\n";怎么运行出来结果不对?...
一个求和公式
foreach (@_)
{
$sum=$sum+shift(@_) ;
}
print "$sum.\n";
怎么运行出来结果不对? 展开
foreach (@_)
{
$sum=$sum+shift(@_) ;
}
print "$sum.\n";
怎么运行出来结果不对? 展开
3个回答
展开全部
Perl foreach用法
Perl foreach从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个。控制变量(本例中为$rock)每一次迭代从列表中取出一个新值。第一次为“bedrock”,第三次为“lava”。控制变量不是这些列表元素中的一个拷贝而是这誉辩裂些元素本身。也就是说,如果在循环中修改这个变量,那原始列表中的元素也会被修改,如下面代码段所显示。这条性质是有用的,但是,如果不清楚,可能对其结果感到吃惊。
当循环结束庆闭时$rock的值同循环开始之前相同。Perl foreach循环中控制变量的值会被Perl自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值则为undef。这意味着如果有一个变量和控制变量有相同的名字:“$rock”,不用担心会混淆灶哪它们。
Perl foreach从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个。控制变量(本例中为$rock)每一次迭代从列表中取出一个新值。第一次为“bedrock”,第三次为“lava”。控制变量不是这些列表元素中的一个拷贝而是这誉辩裂些元素本身。也就是说,如果在循环中修改这个变量,那原始列表中的元素也会被修改,如下面代码段所显示。这条性质是有用的,但是,如果不清楚,可能对其结果感到吃惊。
当循环结束庆闭时$rock的值同循环开始之前相同。Perl foreach循环中控制变量的值会被Perl自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值则为undef。这意味着如果有一个变量和控制变量有相同的名字:“$rock”,不用担心会混淆灶哪它们。
展开全部
你在族带遍冲灶历列表的同时,改变了列表(shift删除了列表中的元素),导致遍历并散穗扮没有遍历所有元素。
所以你应该用
foreach (@_)
{
$sum=$sum+$_ ;
}
print "$sum.\n";
更多追问追答
追问
非常感谢回复,但我就是搞不懂为什么只删除了首个元素用foreach就不对了呢,从理论上讲是哪出错了?
追答
你要遍历@_,同时却在改变@_,那结果肯定是不对的。而且你不是“只删除了首个元素”,而是每次删除首个元素。你在循环中输出print "$_\n";,可以看出一些问题。foreach是根据下标来遍历的,假如列表元素个数是10,你运行5次(就是删除了5个元素),第六次进循环的时候,下标是5,这时列表中还有5个元素,下标最大就是4了,所以遍历就结束了。
我不知道你“搞不懂为什么只删除了首个元素用foreach就不对了呢”是具体哪个地方不懂,所以只能自说自话了。希望你能描述的更具体一点
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Jmeter是一款于如姿java公司开发的蠢袜接口和性能测试渣档绝工具,学好Jmeter可以有效帮助我们提高软件测试工作效率
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询