PHPで仏教プログラミング|while文を使って繰り返し処理・十念プログラム別バージョン

御参拝、誠に有難う御座います。住職(管理人)の修羅観音です。

本とProgateとポンクソフトというウェブサイトを使わせて頂き、PHPの学習を進めております。
前回は、for文を使って、お念仏を十回称えるという「十念プログラム」を完成させました。

今回も、PHPの繰り返し処理を学ぶわけですが、今回取り上げるのは、「while文」です。



while文については、Rubyで仏教プログラミングでも取り扱った事柄であります。

PHPでも、while文による繰り返し処理をプログラムすることが出来ますよ。

for文との違いや、Rubyでの書き方を比較してみると、より理解が深まるかと存じます。



また、繰り返すプログラムを書こうという場合、for文だけではなく、while文もきちんと知っていると、より出来る事の幅も広がりましょう。



そんなこんなで、今回はPHPでも使う繰り返し文、while文を友に学ぶ時節と致します。

for文との比較をしやすくするために、今回も「十念プログラム」を作ると言う事にして、while文を共に学んで参りましょう。



PHPで仏教プログラミング:仏教サイドの基礎知識・・・はもうよろしゅおす

PHPで仏教プログラミング、今回は「while文」を使って、お念仏を繰り返し、10回「南無阿弥陀仏」を称える「十念プログラム」を作るわけですが。



仏教サイドの前提知識については、もうよろしゅおすなあ、と思うところに御座います。

この寺院(ブログ)でも、何度か取り扱ってきておりますし、読んできて下さっているならば、「またかよ」となりましょうし。

あまりくどくどとするのも、なんだかなあ、とも思います。



ただ、初見の人ももちろんいらっしゃるでしょうから、簡潔に。



「十念」とは、浄土宗のお念仏の行為様式(エトス)であり、「南無阿弥陀仏」を十回お唱え申し上げる事に御座います。

お坊さんが「同称十念(どうしょうじゅうねん)(同唱十念とも)」と仰ったら、一緒に「なむあみだぶなむあみだぶ・・・」と、称えます。



1回目から8回目は「なむあみだぶ」と発音し、9回目だけ「なむあみだぶつ」と称え、10回目は「なむあみだぶ」と称えます。

地域によっては、これが逆転して、9回目だけ「なむあみだぶ」で、他は「なむあみだぶつ」になるという事を、ミッドナイト念仏に並んでいる時、浄土宗のお坊さんに教わりました。



十念については、こちらでもお伝えしておりますから、プログラミングの復習を兼ねて、お読み頂ければと存じます。



参照記事:「PHPで仏教プログラミング|for文を使って十念プログラムを作ってみる」

参照記事2:「Rubyで仏教プログラミング|timesとifで「十念」をプログラミングしてみた」

PHPで仏教プログラミング:while文の前提知識

続いて、PHPというプログラミング言語サイドの、while文についての前提知識を、学んでおきましょう。

while文は、for文のように「繰り返したい処理を繰り返すためのプログラム」を書く時に用います。



for文でしたら、初っぱなに「for」と書き、その後に条件式や繰り返す式を書いておりました。

while文では、最初に一行で繰り返す条件を全て書き出す、という書き方では御座いません。



while文を使って繰り返し処理をプログラムしていく時は、公式にした解説をすると、次の通りです。
<?php
変数の初期化
while (条件式) {
実行する処理1(条件が整えば出力される処理など)
実行する処理2(無限ループにならないための処理・条件式)
}
?>

これを、具体的な例を用いて解説しますと、そうですね、例えば、「1から10を表示させる」というプログラムを作ると仮定しましょうか。



この場合、まず変数を用意して、変数に1を代入します。

今回は、「$i = 1」とします。



こうして変数を用意したら、次にwhile文を書いていきます。

while文を書く場合、「while」の右に「この条件が成立する間は、処理が実行され続ける」という条件式を用意します。



今回の例でしたら、1から10まで表示させたいわけですから、条件式は次のようになります。



「while ($i <= 10)」



これで、「変数$iが、10以下の場合は、処理を実行する」という条件が整います。







そして、「{}」の間に、実行する処理と、無限ループにならないための処理・条件式を書きます。

実行したい事柄は、1から10を表示させたいということですから、変数$iを表示させる処理を書きます。

「echo $i;」とすれば、1から10までが表示されます。

見やすくするために、「echo “<br>”;」と、改行も入れておきます。



そして、無限ループにならないための処理ですが、今回の例では、$iに1ずつ加算する事で、1から10を表示させていくというループになりますから、「$i++;」とすると、変数$iが1ずつ加算されて、10以上になるまで処理が実行されます。



この「無限ループにならないための計らい」は、重要事項です、忘れずに書きましょう。

そうしないと、無限に処理が実行され続けて、えらいことになりますからね。

ブラウザクラッシュ、通称「ブラクラ」の技術は、恐らくこれを使ったというものもありましょう。

真似しないように、注意したいものですな。



1から10までを表示させる簡素なプログラムの完成形は、次のようなコードになります。






これを実行すると、ブラウザにこのように表示されます。




きちんと改行された状態で、1から10までの数字が表示されていることが、おわかり頂けるかと存じます。



PHPで仏教プログラミング:while文を使って十念プログラムを作成する

それでは、いよいよPHPで仏教プログラミング、十念プログラムをwhile文を使って、作成して参りましょう。

といっても、基本的な事柄、while文についての書き方の例を少し弄れば、すぐに完成すると言う事は、勘の良い人ならば、さくっと分かってしまった事柄でありましょうかな。

流石にそれでは味気ないから、もう少し「PHPでプログラミングをしている感」を出して観る事に致します。

まず、変数「$i = 1;」は、そのまま使いたいから、新しく変数「&namu = “南無阿弥陀仏”;」という変数を用意します。

次にwhile文のコーディングに取り掛かりますが、これは1から10プログラムの例をそのまま使います。

「while($i <= 10)」という条件式をセットして、「{}」の中に、実行したい処理を書きます。

今回は、「南無阿弥陀仏」という文字列と共に、今何回目なのか、もわかるようにしたいから、そのような処理を書いて行きます。

そうなると、次のような書き方をすると、何回目の南無阿弥陀仏かがわかるように表示出来ます。

「echo”{$i}:{$namu}”;」



参照記事:「PHPで仏教プログラミング|echoと変数を使って南無阿弥陀仏を表示する」



そして、最後に忘れてはならない重要な事柄、「無限ループにしないための処理・条件式」です。

これを書かないと、延々と「南無阿弥陀仏」が繰り返されます。

最も、お念仏の教えとしては、臨終まで「南無阿弥陀仏」を称えるという在り方にはなりましょうがね。

今回はあくまで「十念」という事で、10回の南無阿弥陀仏を称える事を目的としております。

ゆえに、無限ループにならぬための条件式を、きちんと書いてきましょう。

ここでは、$iの値が10に向かうために1ずつ加算されていく式を書けば宜しい事です。

「$i++;」もしくは「$i = $i + 1;」と書けば、変数$iに1ずつ加算されていき、while文でこしらえた条件に到達すると、ループ処理を抜けます。

そうして完成したプログラムのコードが、次の画像の通りです。


実行すると、見事に「南無阿弥陀仏」が、回数と共にブラウザに表示されます。

while文を書くときの注意:無限ループにならぬように

ここで、while文を書くときの注意点をば。



上述しております通り、while文を書く際、ループを抜けるための条件式を書き忘れると、無限ループになります。

無限ループは、ブラウザクラッシュのように、PCに負担を掛けたりと、なかなかに厄介な現象を引き起こす事になりかねません。



昔は、ブラウザが延々と開かれてしまうという、通称「ブラクラ」が御座いましてね、あれが実行されてしまったら、PCを再起動書けないといけない手間があったものですよ。

「うわ、懐かしい」と思うて読んでいる方も、いらっしゃるんじゃありませんかな。



ブラウザクラッシュをさせる目的が無いとしても、条件式を間違えて書いたり、無限ループにならないようにするための処理・条件式を書き忘れると、ブラウザを開いた人が無限ループにはまってしまう、なんて事態も起こり得ます。

そうならないために、無限ループにならないための処理・条件式は、きっちりと書きましょう。



これは、自戒を込めて。



if文を組み合わせて、9回目だけ「なむあみだぶつ」という読み方を表示させる

PHPで仏教プログラミング、while文を使って十念プログラムを作りましたが、もう少し「プログラミングしている感」を味わうために、if文も使って、何かやってみましょうか。

そうですね、前提知識のところで、読み方について学びましたから、if文を使って、「南無阿弥陀仏」の読み方を表示させてみることにしましょう。



今回の場合でしたら、while文の中に、if文を組み込めば可能です。

if文については、こちらで復習しておいて頂ければ、より理解が深まりましょう。



参照記事:「PHPで仏教プログラミング|if文による条件分岐とrandで高僧の名前をランダムに表示」



「十念」を称える場合、9回目だけ「なむあみだぶつ」と称え、1回から8回目と10回目は「なむあみだぶ」と称えたいというのが、今回の趣旨です。

そこでif文はelseも使いながら、9回目だけ「なむあみだぶつ」と読み方を表示させる、という条件式を書けば、コードも簡潔になりそうです。



そうすると、if文の条件式は、次のように書きます。

「if ($i == 9)」



そして、if文の「{}」の中に、9回目だけ「なむあみだぶつ」という読み方も表示させるecho文を書けばOK。

実際には、このように書く事になります。
「echo”${i}:${namu}(なむあみだぶつ)”;」


後は、9回目以外は「なむあみだぶ」という読み方を表示させるために「else」を使って、「else」の「{}」内に、表示させたい処理を書きます。

「echo”${i}:${namu}(なむあみだぶ)”;」



このif文を付け加えたwhile文が、こちらです。






これを実行すると、このように表示されます。




はい、見事に、9回目だけ「なむあみだぶつ」と、わかりやすく読み方が表示される「十念プログラム」が出力されました。


while文もfor文も使いこなせるようにして、幅を広げましょう

今回は、while文を使って十念プログラムを作るという、PHPで仏教プログラミングをお送り致しました。



while文とfor文を自在に使いこす事が出来れば、プログラミングの幅も広がりましょう。

例えば、回数が決まっている場合は、for文を使った方がより簡潔であるとか、そういった使い分けも出来るようになります。



私としては、出来るだけfor文で書けたらな、という偏りがあったり致しますがね。

for文の場合は、最初に無限ループにならないための条件式を書いておくことになりますから、無限ループを書いてしまうと言う事になりにくくなる、という感覚がありまして。

だからといってwhile文が悪いというのではなく、きちんと使うべき文・句を使うべき時節やプログラムにおいて、使い分けが出来るようにして置く事が望ましい、という事であります。



while文とfor文もやりましたから、ここら辺りで一度、PHPで仏教プログラミングの第一回まとめ記事も作っておいた方が良さそうだな、と、思い始めております今日この頃。

もう少しPHPで仏教プログラミングがたまってきましたら、まとめ記事をこしらえる事にします。



尚、PHPを無料で先生について貰って学びたい方は、プロエンジニア(ProEngineer)プログラマカレッジも使って学ばれる方が、より捗りましょう。



参照記事:「ProEngineer(プロエンジニア)は無料なのに終活支援付きでプログラミングを学べるとは凄い!」

参照記事2:「PHP独学習開始|プロエンジニア(ProEngineer)プログラマカレッジなら無料で実践的に学べる」

参照記事3:「ProEngineer(プロエンジニア)のプログラマカレッジ情報総集編|無料プログラミングスクールは本当に有り難い」





ちまちまと学ぶよりは、現場を知るプロエンジニア(ProEngineer)のプログラマカレッジにいらっしゃる先生方・講師陣に尋ねながら鍛えられる方が、より速くプログラミングを習得できましょうからね。

カリキュラムをこなす事は、それなりに大変であると経験者から伺ってはおりますが、体系的に学べる上に、躓いても講師に教わる事で解決出来ますから、非常に有り難し。



それに、ウェブ系の開発では避けて通れないであろう、HTMLとCSSも同時に学べるという、非常に有り難い環境が整っておりますからね。



活用しないのは勿体無い。



今回までのPHPで仏教プログラミングで学んで頂き、もっと学びたい方は、上述したプロエンジニア(ProEngineer)プログラマカレッジに参加されると宜しいかと存じます。



私は年齢制限があって受講出来ないがゆえに、せっせとProgateと「30時間アカデミックPHP入門」などを使って、精進する事に御座ります。



合掌、礼拝

スポンサーリンク