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


您的代码错误太多:

  1. $args 是数组,所以 $args++$args > $largest 没有意义,它作用于数组
  2. 的隐藏类型转换
  3. $largest = []; 应该是整数,而不是数组。
  4. 你永远不会分配任何东西 $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}";