我正在编写程序,使用if语句列出n个元素(1,2,... n)的奇/偶数序列。 例如,
n = 1
Odd Series
1
3
5
7
9
Even Series
0
2
4
6
8
如果有可能在没有if语句的情况下打印奇/偶数序列。
答案 0 :(得分:3)
是的。这个有可能。我们可以列出没有if条件的奇数或偶数序列。
我们使用inifment条件的Increment运算符。
示例代码为
<?php
echo "Odd Series";
echo "<pre>";
for ($i=0; $i < 10; $i++) {
echo ++$i;
}
echo "Even Series";
echo "<pre>";
for ($i=0; $i < 10; $i++) {
echo $i++;
}
?>
示例输出在这里
Odd Series
1
3
5
7
9
Even Series
0
2
4
6
8
答案 1 :(得分:3)
您可以按需使用range
,步长为2,根据需要从0或1开始:
echo "Odd Series\n";
foreach (range(1, 9, 2) as $v) echo "$v ";
echo "Even Series\n";
foreach (range(0, 9, 2) as $v) echo "$v ";
输出:
Odd Series
1 3 5 7 9
Even Series
0 2 4 6 8
答案 2 :(得分:2)
我们可以尝试使用三元表达式代替if
语句:
// even series
for ($i = 0; $i < 10; $i++) {
echo $i % 2 == 0 ? $i : "\n";
}
另一种可能性是按照2的步骤迭代for
循环。
for ($i = 0; $i < 10; $i=$i+2) {
echo $i . "\n";
}
答案 3 :(得分:2)
使用数组,可以使用range()
创建范围,并使用array_filter()
使用位运算符提取奇数或偶数。
$n = 8;
$series = range(1, $n);
$odd = array_filter($series, function($value) { return $value & 1; });
$even = array_filter($series, function($value) { return !($value & 1); });
var_dump($odd, $even);
然后只需循环数组$odd
和$even
。
echo "Odd values: \n";
foreach ($odd as $v) {
echo $v."\n";
}
echo "Even values: \n";
foreach ($even as $v) {
echo $v."\n";
}