#45~48 Loops-For, Nested loop, While, Do...while
今回は指定したコードを繰り返してデータに適用するためのLoopの使い方を学びます。紹介するのはFor, Nested loop, While, Do...whileの4種類です。
Forの使い方―練習問題1
数値を入力し、Submitボタンを押したら、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
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と表示されます。
ここではPHPのコード解説が目的なので、練習問題1同様に、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について詳しく知りたい方はぜひこちらもご覧ください。😊