-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 に答える