while 算法循环 php
while algorithm loop in php
如果我将一组数字输入终端,我正在尝试循环这些数字。通过调用
php scripts/max.php 1 5 9
我想要一个循环遍历 1、5、9 并告诉我最大数字是多少的循环。我一直对循环感到困惑,但我做到了这一点。
$args = $argv;
array_shift($args);
if (empty($args)) {
echo "Expecting numbers as arguments." . PHP_EOL;
exit(1);
}
$largest = [];
while ( $args++) {
echo $args . PHP_EOL;
while($args > $largest) {
break 2;
}
}
想法是当在终端中输入数字时,循环会采用任意数量的数字并告诉我哪个数字最大。
扔掉你所有的循环,只做max($args)
1
您的代码错误太多:
$args
是数组,所以 $args++
和 $args > $largest
没有意义,它作用于数组 的隐藏类型转换
$largest = [];
应该是整数,而不是数组。
- 你永远不会分配任何东西
$largest
如果那是学校作业,请以正确的方式进行:
$args = $argv;
array_shift($args);
if (empty($args)) {
echo "Expecting numbers as arguments." . PHP_EOL;
exit(1);
}
$largest = PHP_INT_MIN; // first set it to be smallest possible integer. And since $args is not empty, we will overwrite it
foreach ($args as $arg) {
// Compare if current element is larger than our current $largest
if ($arg > $largest) {
$largest = $arg;
}
}
echo "Largest number: {$largest}";
如果我将一组数字输入终端,我正在尝试循环这些数字。通过调用
php scripts/max.php 1 5 9
我想要一个循环遍历 1、5、9 并告诉我最大数字是多少的循环。我一直对循环感到困惑,但我做到了这一点。
$args = $argv;
array_shift($args);
if (empty($args)) {
echo "Expecting numbers as arguments." . PHP_EOL;
exit(1);
}
$largest = [];
while ( $args++) {
echo $args . PHP_EOL;
while($args > $largest) {
break 2;
}
}
想法是当在终端中输入数字时,循环会采用任意数量的数字并告诉我哪个数字最大。
扔掉你所有的循环,只做max($args)
1
您的代码错误太多:
$args
是数组,所以$args++
和$args > $largest
没有意义,它作用于数组 的隐藏类型转换
$largest = [];
应该是整数,而不是数组。- 你永远不会分配任何东西
$largest
如果那是学校作业,请以正确的方式进行:
$args = $argv;
array_shift($args);
if (empty($args)) {
echo "Expecting numbers as arguments." . PHP_EOL;
exit(1);
}
$largest = PHP_INT_MIN; // first set it to be smallest possible integer. And since $args is not empty, we will overwrite it
foreach ($args as $arg) {
// Compare if current element is larger than our current $largest
if ($arg > $largest) {
$largest = $arg;
}
}
echo "Largest number: {$largest}";