この記事にはプロモーションが含まれています。

【PHP】for文を書くときの考え方をピラミッド作成から学ぶ

【PHP】for文を書くときの考え方をピラミッド作成から学ぶ

ケケンタ

こんにちは! ケケンタです。

PHPを勉強し始めると比較的早い段階でfor文(繰り返し文・ループ文)の学習に差し掛かるかと思います。

ただ、このfor文、初学者の方にとってはひとつ目の鬼門となることが多いです。

(かくいう僕も、最初はfor文でつまずきました……)

そこで今回はPHPを学習し始めたばかりでfor文でつまずいてしまったという方に向けて

ピラミッド作成から学ぶfor文を書くときの考え方

を解説していきます。

この記事が向いている方
  • PHPを学習し始めたばかりの方
  • for文の考え方のイメージがわかない方
  • PHPでピラミッド作成をしてみたい方
  • 二重ループの考え方を知りたい方
ケケンタ

この記事をご覧いただくことでfor文を書くときの考え方のイメージが掴めるようになります。

この記事を通して、初学者の方にとってつまずきやすいfor文への理解が少しでも深まれば何よりです。

他にもfor文の考え方を知るための解説記事を「九九表作成」をテーマに公開しています。
ご興味のある方はぜひこちらもご覧ください。

PHPのことを体系的に学びたい方にはこちらの書籍がおすすめです。
(僕自身が初めてPHPを学ぶとき実際に使用した本です)

PHP本格入門[上] ~プログラミングとオブジェクト指向の基礎からデータベース連携まで
大塚 正登/著 技術評論社/出版|Amazon




ケケンタ

ケケンタのITブログでは、WebアプリPHPLaravel)やWeb制作WordPressコーディング)について情報を発信しています。
学習中の方や実務をされている方など多くの方にアクセスいただいていますので、ぜひほかの記事も参考にしてみてください!


運動不足、気になっていませんか?

もしプログラミング学習やお仕事で運動不足が気になっているなら
連続屈伸運動がおすすめです!

ボタンにカーソルを合わせるだけ
カウントダウンが始まるタイマーをご用意してみました!

ケケンタ

無理のない範囲で、ぜひ隙間時間に屈伸運動を取り入れてみて下さい!

タイマースタート

3:00

※運動不足だと連続3分で取り組んでもかなり息が切れます
(僕は加えて気分もちょっと悪くなりました……)
絶対にご無理の無い範囲でお取り組みください!


目次

PHPにおけるfor文とは?

具体的な解説の前に、まずはfor文とは何か?について簡単にお話をします。

for文とは?

for文とは、ある処理を繰り返し行いたいときに用いるPHPの基本構文のひとつです。
似た構文としてwhile文があります。

具体例

<?php
    /**
     * 0~9までの数字を繰り返し出力する
     */
    for($i=0; $i<10; $i++){
        echo $i;
    }

    /**
     * for文を使用しないで書こうとすると……
     */
    echo 0;
    echo 1;
    echo 2;
    echo 3;
    echo 4;
    echo 5;
    echo 6;
    echo 7;
    echo 8;
    echo 9;

    // 出力結果はいずれも以下のようになる
    // 0123456789
?>
ケケンタ

このように、for文(繰り返し文・ループ文)を用いることで、より短いプログラムで処理を組むことが可能です。

ピラミッド作成を通じてfor文の考え方を学ぶ

for文を書くときには、考え方にコツがあります。

for文の考え方のコツ

  • いったん完成形をハードコーディング(手打ち)してみる
  • ハードコーディングした処理を見て、「どこがどのような法則で繰り返されているか」を観察する
  • 「法則」にしたがってfor文に置き換えてみる

このような流れを取ることで、少しずつfor文の考え方に慣れていくこと可能です。

ケケンタ

今回ご紹介するピラミッド作成でも上記のコツに沿って解説を進めていきます。

僕自身、プログラミングを学習し始めたばかりのときはif文までは比較的すんなり進めたのですが、for文で一気につまずきました。

しかし、勉強を継続していくことで少しずつではありますが、for文を書くときの思考の積み重ね方を身に付けることができました。

この記事が、読者の方にとってひとつのキッカケになれば何よりです。

【実践解説】ピラミッド作成

今回作成するピラミッドは「4段」の想定です。

今回作成するピラミッドの完成形

ピラミッドの完成形
ピラミッドのプログラム(完成形)
<?php 

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

    for($j=1; $j<=4-$i; $j++){
        echo '*';
    }

    for($k=1; $k<$i*2; $k++){
        echo $k;
    }

    echo '<br>';
}

?>
ピラミッド作成の流れ
  • まずはハードコーディング(手打ち)でピラミッドを作成する
  • とりあえず4段それぞれにアスタリスクをひとつずつ出力してみる
  • 各段のアスタリスクを必要な分だけ出力する
  • 各段の数字を出力する

①まずはハードコーディング(手打ち)でピラミッドを作成する

先ほどもお伝えしましたが、慣れてくるまでの間は、for文を組むときは出力結果をとりあえずハードコーディング(手打ち)してみるのがコツです。

具体的に書くと以下の通りです。

<?php 

echo '***1' . "<br>";
echo '**123' . "<br>";
echo '*12345' . "<br>";
echo '1234567';

?>

出力結果

ピラミッドの完成形(ハードコーディング)

このようにハードコーディングすることで、どの部分が繰り返されているのか=for文で表現できるのかが可視化されます。
具体的に可視化されることで頭のリソースに余裕が生まれ、for文を書くためのイメージも整理しやすくなります。

②とりあえず4段それぞれにアスタリスクをひとつずつ出力してみる

①の時点で繰り返し部分は可視化されましたが、まだ少し複雑な印象なので、今度はとりあえずアスタリスクを4段に分けて出力してみます。

できる方は②を飛ばして③に進んでも大丈夫です。

<?php 

for($i=1; $i<=4; $i++) {
    echo '*' . '<br>';
}

?>

出力結果

アスタリスクを4段出力してみる

③各段のアスタリスクを必要な分だけ出力する

次に、①で可視化されたピラミッドを元に、「どのような法則でアスタリスク(*)が繰り返されているのか」をイメージします。

ここがピラミッド作成の中で最もハードルが高い部分かもしれません。
この「法則」を自力で導き出せるかどうかが重要なポイントです。

ケケンタ

ちなみにピラミッドにおけるアスタリスクの繰り返し法則は、
「ピラミッド全体の段数 – 現在の段数」です。

例えば、1段目なら「4段-1段=3つ」、2段目なら「4段-2段=2つ」といった法則に基づいて、アスタリスクが繰り返されています。

<?php

for($i=1; $i<=4; $i++) {
    // ******この部分を修正*******
    /**
     * 「4-$i」=「ピラミッド全体の段数-何段目か」
     */
    for($j=1; $j<=4-$i; $j++){
        echo '*';
    }
    echo '<br>';
    // *********ここまで**********
}
 
?>

出力結果

ピラミッドの各段のアスタリスクを出力

④各段の数字を出力する(完成)

最後に、数字部分を出力すればピラミッドの完成です。

この④においても、③と同様「各段の数字がどのような法則で繰り返されているか」に気が付けるかがポイントです。

ケケンタ

ちなみにここでの「法則」は、
「『現在の段数×2』未満の数だけ数字が出力されている」
です。

例えば、

1段目なら「1段目×2=2」なので、1まで
2段目なら「2段目×2=4」なので、1~3まで

の数字が繰り返し出力されています。

<?php 
for($i=1; $i<=4; $i++) {
    /**
     * 「4-$i」=「ピラミッド全体の段数-何段目か」
     */
    for($j=1; $j<=4-$i; $j++){
        echo '*';
    }
    
    // ******この部分を追加*******
    /**
     * 「$k < $i*2」=「『現在の段数×2』未満の数だけ数字を出力」
     * (例)2段目……2×2=4未満(つまり3まで)の数字を出力
     */
    for($k=1; $k<$i*2; $k++){
        echo $k;
    }
    // *********ここまで**********

    echo '<br>';
}
?>

出力結果

各段の数字を出力(ピラミッドの完成)
ケケンタ

以上でピラミッドの完成です!

for文を書くときはまずハードコーディングしてみる

いかがだったでしょうか。

今回はピラミッド作成の工程をできるだけ細分化し、どのような考え方でfor文を書いていけば良いかという点について解説しました。

今回の解説のポイントは以下の通りです。

解説のポイント
  • まずはハードコーディングして完成形を可視化する
  • 「どこがどのような法則に基づいて繰り返されているのか」を分析する
  • 「法則」にしたがってfor文に置き換える

for文は初学者の方にとって大きな鬼門のひとつです。

しかし、ここを乗り越えることができれば、それはプログラミング力だけでなく論理的思考力が向上したことを意味します。

最初は大変かもしれませんし、事実(ぼく自身も含め)ここでつまずく方はとても多いです。

まずは少しずつ「処理を繰り返して出力する」という部分に慣れていきましょう。

ケケンタ

この記事がお役に立ったなら何よりです!
根を詰めすぎないよう、少しずつ前進していきましょう~。

最後までご覧いただきありがとうございました。

以下の記事でもfor文について解説していますので、ご興味のある方はぜひご覧ください。

以下はfor文の練習問題ページです。

また、もしもPHPの独学に限界を感じていたら、一度プログラミングスクールの利用を検討するのも良いかもしれません。

無料でPHPが学べるプログミングスクール

九九表作成で学ぶ! PHPでfor文を書くときの考え方のアイキャッチ

この記事が気に入ったら
フォローしてね!

この記事が良いと思ったらシェアしてね!

コメント

コメントする

CAPTCHA


目次