-2

美好的一天,我的任务是在 php 中创建一个变量计数器。我卡在最后一个阶段。那就是显示正值的总数。我在 php 中使用了 count(),但它没有给我总数。有没有一种方法可以得到 count() 的值的总和?

  if ($start < $end)
    {
    for($ctr = $start; $ctr<=$end; $ctr++)
    {

    if ($ctr == 0)
    {
      echo " <br/ >there is a zero <br/ >"; 
    }   

    else if ($ctr <=0)
    {
    echo count($ctr) . " negative value" ;
    }
    else if($ctr >=0)
    {
    echo count($ctr) . " positive value ";
    }

    }
4

4 回答 4

1
$zero = $pos = $neg = 0;
for($ctr = $start; $ctr<=$end; $ctr++)
{
   switch(true){
     case $ctr==0: $zero++; break;
     case $ctr<0:  $neg++;  break;
     case $ctr>0:  $pos++;  break;
   }
}
if($zero)
  echo "there is a zero<br/>"; 
if($pos)
  echo "$pos positive values<br/>" ;
if($neg)
  echo "$neg negative values<br/>" ;

更好的方法是没有任何循环:

function test($start, $end) {
    echo "Test of [$start, $end]:\n";
    if ($isThereZero = $start * $end <= 0) {
        echo "There is zero\n";
    }

    if ($start < 0) {
        $negatives = $isThereZero ? -$start : -$start+$end;
        echo "$negatives negative values\n";
    }
    if ($end > 0) {
        $positives = $isThereZero ? $end : $end - $start;
        echo ($positives)." positive values\n";
    }
}
test(-12, 5);
test(-12, -5);
test(5, 12);
test(0, 0);
于 2013-10-08T09:23:02.927 回答
0

试试看:

$zer = 0;
$pos = 0;
$neg = 0;
if ($start < $end)
{
  for($ctr = $start; $ctr<=$end; $ctr++)
  {
    if ($ctr == 0)
    {
      $zer++; 
    }   

    else if ($ctr < 0)
    {
      $neg++;
    }
    else if($ctr > 0)
    {
      $pos++;
    }
}

echo $zer . " zero value" ;
echo $neg . " negative value" ;
echo $pos . " positive value ";
于 2013-10-08T09:18:18.613 回答
0

只是为了好玩,这可以在没有循环的情况下完成。这有点棘手,也离最初的问题有点远:

演示

$start = -3;
$end = 5;

echo ($start <= 0 && $end >= 0 ? "1" : "0")." zero value\n";
echo ($start < 0 && $start <= $end ? (-$start-($end > -1 ? 0 : -$end-1)) : "0"). " negative value\n";
echo ($end > 0 && $start <= $end ? ($end-($start < 1 ? 0 : $start-1)) : "0"). " positive value\n";
于 2013-10-08T09:41:04.847 回答
-1
else if($ctr >=0)
{
  $cnt++; //or $cnt+=1;
 }

然后使用 $cnt++ 作为正值的计数

于 2013-10-08T09:22:17.077 回答