【发布时间】:2014-02-08 08:01:28
【问题描述】:
my @arr = (1,2,3,4,5,6,7,8,9);
my $counter = 0;
foreach my $a (@arr) {
my $str;
if ($counter % 2 == 0) {
$str = 'hi';
} else {
$str = 'bye';
}
print $str . "\n";
$counter++;
}
对于 while 循环的每次迭代,在两个不同值之间交替的最佳方法是什么?上面的简单例子,有没有比保持计数器和修改找到偶数更好的方法?
【问题讨论】:
-
可能有几十种不同的方法来做你所描述的事情。定义“更好”/“最好”。最少的代码行?最易读?最快?
-
也许是
$toggle = ! $toggle;(您目前在此处递增计数器),但它的代码并没有减少或更容易理解。 -
我猜“最佳”可能是最少的代码行数。我宁愿不必使用计数器,但我不知道 Perl 是否有特殊的方法可以实现这一点。