PHP程序接受用户输入并在输入零时终止

时间:2018-04-14 12:21:00

标签: php command-line

我在http://www.programmr.com上看到了这个程序。问题是 完成程序以从用户输入的数字列表中打印负数,正偶数,正奇数之和。当输入的数字为零时,列表终止。我的代码是,

$nums = array();

while(trim(fgets(STDIN)) != 0){
    array_push($nums,trim(fgets(STDIN)));
}

我知道代码是不完整的但是我想要做的是将输入推送到数组然后计算总和。当我print_r($nums)数组时,它给了我这个,

Array
(
    [0] => 34
    [1] => 32
    [2] => 45
    [3] => 0
)

我的意见是,

 12
 34
 12
 32
 12
 45
 12
 0
 0

它推动了替代元素,我不知道发生了什么。请帮助我,提前谢谢。

1 个答案:

答案 0 :(得分:1)

你在代码中调用fgets(STDIN)两次,我已经调整了一下,所以数组部分工作正常。分配的其余部分我让你想出那部分;)提示:使用模数运算符。

$nums = array();

do {
    $number = (int) trim(fgets(STDIN));
    array_push($nums,$number);
} while ($number !== 0);

print_r($nums);

此外,如果您使用的是PHP5.6或更高版本,则可以使用短数组语法:

$nums = [];

$nums[] = $number;