在下面的代码中,我试图编写一个非常简单的foreach数学计算循环。
use strict;
use warnings;
my @array = (1..10);
my $sum = 0;
foreach my $number (@array) {
$sum = $number / 2;
}
print "$sum\n"
在我的脑海中,foreach循环应该通过@array中的每个$ number(1-10)计算每个数字除以2.我希望它会通过每个数字的$ sum打印出答案。 10,但我得到答案5.
我的逻辑出了什么问题?
答案 0 :(得分:1)
您只需要在foreach循环中移动print语句,以便每次循环时都打印出$sum
的当前值:
use strict;
use warnings;
my @array = (1..10);
my $sum = 0;
foreach my $number (@array) {
$sum = $number / 2;
print "$sum\n";
}
那将输出:
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
您可以通过以下方式简化程序:
use strict;
use warnings;
foreach my $number (1..10) {
print $number/2 , "\n";
}