見出し画像

#45~48 Loops-For, Nested loop, While, Do...while

今回は指定したコードを繰り返してデータに適用するためのLoopの使い方を学びます。紹介するのはFor, Nested loop, While, Do...whileの4種類です。


Forの使い方―練習問題1


数値を入力し、Submitボタンを押したら、1から入力した数値までの整数が表示される仕組みを作りたいとします。

練習問題1のアウトプット

入力欄の骨組みはhtmlで作ります。ここではPHPのコード解説が目的なのでhtmlのコードはスクリーンショットのみ貼っておきます。


入力欄を作るためのコード

次にPHPのコードです。
①フォームに数値が入力されたら
②その数値までの整数を1から順に表示させたい=Loopさせたい=Forを使用

<?php
  if(isset($_POST['number'])){           //①
    $num_n = $_POST['number'];  
    //入力した数値を$num_nというvariableに格納
   for($num = 1; $num <= $num_n; $num++){     
    //②。$num <= $num_nは1から入力した数値までという条件
     //$num -> initial valueのこと。1から始まることを定義しています
               echo "$num";
           }
      }
?>

Forを使う場合のsyntaxは以下の通りです。
for(initial_counter; condition; update_statement){
  // Loop body
 // Code goes here
}

Nested loopの作り方―練習問題2



練習問題2のアウトプット

Forを使うと指定したコードを、条件を満たす範囲で繰り返しinitial valueに適用できることが、練習問題1から分かりました。次はForを入れ子にしてLoop bodyをさらにloopさせる方法を学びます。

次にphpのコードです。ここで使うのが行を表す$rowと列を表す$colです。
練習問題2のアウトプットでは、①:*を表示させる行を7行作り、②:それぞれの行にはその行番号の数の列を作ります。
コードは以下のようになります。
<?php
  for($row = 1; $row <= 7; $row++) {    //①
      for($col = 1; $col <= $row; $col++) {
         echo "* ";
      }
     echo "<br>";
     }
?>
      

Whileの使い方


WhileはForのsyntaxと似ています。
while(<condition>) {
 // Loop body
// Go here if condition is true.
// At the end of this block, go back to condition.
}
例えば次の通りです。
# while loop
 $num = 1;  // initial counter / initialization
 while($num < 5) {  // condition
  // loop body
   echo "$num: The number is less than 5. <br>";
     $num++;   // update statement
 }
アウトプットとしては次のように表示されます。
1: The number is less than 5.
2: The number is less than 5.
3: The number is less than 5.
4: The number is less than 5.

Do…whileの使い方―練習問題3

次のようなアウトプットを作りたいとします。
Starting value < Ending valueの場合、それぞれに入力した数値が昇べきの順で表示され、Starting value > Ending valueの場合は降べきの順、Starting value = Ending valueの場合はErrorと表示されます。


Starting value=1, Ending value=5の場合のアウトプット
Starting value=5, Ending value=1の場合のアウトプット
Starting value=Ending valueの場合のアウトプット

ここではPHPのコード解説が目的なので、練習問題1同様に、htmlのコードはスクリーンショットのみ貼っておきます。

練習問題3のhtmlのパート

次にphpのコードです。
①:数値が入力されて、②:Starting value < Ending valueであれば、③:昇べきの順で表示、④: Ending value<Starting valueであれば、⑤降べきの順、⑥:Starting value =  Ending valueであればError 表示なのでコードは以下のようになります。

<?php
if(isset($_POST['submit'])){
$s_value = $_POST['s_value'];
$e_value = $_POST['e_value'];

        
<?php
  if(isset($_POST['submit'])){             //①
     $s_value = $_POST['s_value'];
     $e_value = $_POST['e_value'];

     $num = $s_value; // initial counter / initialization

        if($num < $e_value){                //②
            do{
                // loop body
                echo "$num ";
                $num++; // update statement    //③
              } while($num <= $e_value) ; // condition
        } elseif($num > $e_value){nn           //④
            do{
                // loop body
                echo "$num ";
                $num--;           // update statement. ⑤
              } while($num >= $e_value) ; // condition
        } else {
            echo "Error";                 //⑥
        }
    }
     
?>


今日はここまで!
今回も読んでいただき、ありがとうございました。😊
今回はレッスンから投稿まで2日あいてしまったので、なるべくその日のうちに投稿できるように頑張ります!


筆者が受講中のKredoの公式ラインはこちらです。 未経験からwebエンジニアに転職した卒業生の方の体験記なども載っているので ぜひ覗いてみてください!

Kredoについて詳しく知りたい方はぜひこちらもご覧ください。😊


この記事が気に入ったらサポートをしてみませんか?