1

3、5、15 という数字を表示したくありません。プログラムの実行時に表示してほしい

1 2 3 4 5 6 7 ...

$var1 = 3;
$var2 = 5;
$var3 = 15;

for ($i=1; $i<=100; $i++) {

  if($i<=3){
    if (($i%$var1)==0) 
      echo 'Three' .'<br/>';
  } 

  if($i<=5)
    if (($i%$var2)==0) {
      echo 'Five' .'<br/>';
    }

  if($i<=15) 
    if ((($i%$var3)==0)) {
      echo 'ThreeFive' .'<br/>';
    }

  echo $i.'<br/>';  
}
4

5 に答える 5

3

かなり大雑把ですが、実用的な解決策は次のとおりです。

$var1 = 3;
$var2 = 5;
$var3 = 15;

for( $i=0; $i<100; $i++ ) {
  switch( $i ) {
    case $var1: echo 'Three<br>'; break;
    case $var2: echo 'Five<br>'; break;
    case $var3: echo 'ThreeFive<br>'; break;
    default:    echo $i.'<br>';
  }
}
于 2013-04-11T06:13:01.787 に答える
2

このコードで確認してください

$exclude_array = array(3,5,15);
for($i = 0;$i < 100; $i++){
   if(!in_array($i,$exclude_array))
   echo $i;
}
于 2013-04-11T06:13:35.757 に答える
1

もう少しエレガントなソリューション...

$alter = array(3=>"Three<br>", 5=>"Five<br>", 15=>"ThreeFive<br>");
for($i=0; $i<100; $i++) echo isset($alter[$i]) ? $alter[$i] : $i;

が 3 または 5 で割り切れるたびにThree and Fiveを出力したいと思います。次に、次のように変更できます。$i

$alter = array(3=>"Three", 5=>"Five");
for($i=0; $i<100; $i++) {
    $print_word = false;
    foreach($alter as $key=>$val) if($i>0 && $i%$key==0) {
        echo $val;
        $print_word = true;
    }
    echo $print_word ? "<br>" : $i;
}
于 2013-04-11T06:22:25.287 に答える
0

これを試して-

    $var1 = 3;
             $var2 = 5;
             $var3 = 15;

              for ($i=1; $i<=100; $i++) {

             if ($i==$var1) 
            echo 'Three' .'<br/>';


            else if ($i==$var2) {
            echo 'Five' .'<br/>';
           }

            else if ($i==$var3) {
            echo 'ThreeFive' .'<br/>';
           }
else
            echo $i.'<br/>';  
           }
于 2013-04-11T06:13:48.280 に答える