【第七回】PHPでシステム開発を実践!基本的な構文④”繰り返し処理や演算子”

はじめに

今回は繰り返し処理や演算子について取り上げたいと思います。
それぞれよく使いますので、プログラムの組み方を覚えておきましょう。

繰り返し処理

繰り返し処理とは、プログラムの処理を指定した回数まで処理したい際に使います。
例えば1から10までの数字を出力したいとなった場合、1つずつ入力するのは手間がかかります。
そこで繰り返し構文でその手間を軽くすることが出来ます。
繰り返し構文には「while構文」と「for構文」があり、両方ともよく使いますので以下にそれぞれ取り上げていこうと思います。

while構文

繰り返し構文の1つで「while構文」というものがあります。
形式は以下のようになります。
——————
<?php
初期化するための式
while(条件式){
処理;
更新;
}
?>
——————
こちらに例えば1から10までの数を出力させたい場合で合わせてみますと
——————
<?php
$i=1;
while($i <= 10){
echo $i . ‘<br>’;
$i++;
}
?>
——————
となります。
こちら実際に入力し、ブラウザで確認してみます。
VSCwhile構文
ブラウザwhile文
1から10まで表示されていればプログラムが正しく動いています。
こちら先ほどのwhile文を確認してみましょう。

$iとありますが、こちらは変数となり今回の場合ですとこの変数に数字を代入しています。
変数については、前回の記事で取り上げていますので、もし分からないという方はこちらをご覧ください。

最初に$iを初期化するために1を代入します。
そして次の行からwhile文で繰り返し処理を行います。
while()のカッコの中に条件式を入れますが、今回は10までという条件がありますので、$i<=10と入力します。

そして中カッコの中にはまず処理を指定しますが、今回の場合ですと$iに代入されている数字を出力しますので、echo $i .'<br>’と入力します。
ちなみに<br>はHTMLタグでして改行の意味となります。

出力の処理が終わりましたら、次は更新です。
今回は、$i++;と入力していますが、こちらは$i=$i+1;と同じ意味になります。
このことにより出力の処理が終わった後に$iに代入されている数字に+1します。
1を追加した後、While構文内の処理を条件(10まで)から外れるまで繰り返します。

ちなみに
———————
<?php
$i=1;
while($i <= 10):
echo $i . ‘<br>’;
$i++;
endwhile;
?>
———————
でも動きます。
VSCwhile文
この際にwhile()の後は:(コロン)となることと最後にendwhile;を追加することを忘れないようにしましょう。
こちらどちらの書き方でも問題ありません。
状況に合わせて使っていただければと思います。

参考:while
参考:【PHP】while文とfor文をざっくりまとめてみた。

for構文

もう1つの繰り返し処理として「for構文」というものがあります。
形式は以下のようになります。
——————
<?php
for(初期化; 条件式; 更新){
処理;
}
?>
——————
こちらに例えば1から10までの数を出力させたい場合で合わせてみますと
——————
<?php
for($i=1; $i<=10 ; $i++){
echo $i .'<br>’;
}
?>
——————
となります。
では実際に入力し、ブラウザで確認してみます。

VSCfor文
for文ブラウザ確認

1から10まで表示されていればプログラムが正しく動いています。
ここで先ほどのfor文を確認してみましょう。

$iとありますが、こちらは変数となり今回の場合ですとこの変数に数字を代入しています。
変数については、前回の記事で取り上げていますので、もし分からないという方はこちらをご覧ください。

for文の場合、for()のカッコの中にwhile文でも出てきました「初期化」、「条件式」、「更新」を指定します。
最初に$iを初期化するために1を代入します。
そしてその右隣に条件式を入れますが、今回は10までという条件がありますので、$i<=10と入力します。
最後に代入する数字を更新するために、今回の場合ですと$i++;と入力します。こちらは$i=$i+1;と同じ意味になります。
;(セミコロン)を入力する場所に気を付けましょう。

for(){}の中カッコの中には処理を指定します。
今回の場合ですと$iに代入されている数字を出力しますので、echo $i .'<br>’と入力します。
ちなみに<br>はHTMLタグでして改行の意味となります。

以上によりwhile文同様に出力の処理が終わった後に$iに代入されている数字に+1します。
1を追加した後、for構文内の処理を条件(10まで)から外れるまで繰り返します。

ちなみに
——————
<?php
for($i=1; $i<=10 ; $i++;):
echo $i .'<br>’;
endfor;
}
?>
——————
でも動きます。

VSCfor文

この際にfor()の後は:(コロン)となることと最後にendfor;を追加することを忘れないようにしましょう。
こちらどちらの書き方でも問題ありません。
状況に合わせて使っていただければと思います。

参考:for
参考:PHPでfor文(ループ処理)を使う方法【初心者向け】

演算子

ここまでで繰り返し処理について触れましたが、構文内に見慣れない$i<=10や$i++などが出てきました。
こちらの<=などの記号を演算子といいます。
演算子には色々な種類がありまして、多くの場面で使用します。
ここで少し演算子について掘り下げていこうと思います。

比較演算子

先ほど出てきました$i<=10ですが、ここで使われている<=を比較演算子といいます。
こちら他にも演算子があり、右辺と左辺を比較する際に使用します。

A<=B

先ほど例として出てきました<=は、数学では≦のことになります。
それをプログラムでは<=と入力しまして、意味は左辺の値が右辺の値と同じかそれより小さい(右辺以下)という時に「左辺<=右辺」と使います。

A>=B

数学で出てくる≧をプログラムで表現する際はA>=Bとします。
意味は左辺の値が右辺の値と同じかそれより大きい(右辺以上)となり「左辺>=右辺」と使います。

A<B

数学で出てくる<はプログラムで表現する際も同様にそのまま<を使います。
意味は数学と同様に左辺の値が右辺の値よりも小さい(右辺未満)となり「左辺<右辺」と使います。

A>B

数学で出てくる>はプログラムで表現する際も同様にそのまま>を使います。
意味は数学と同様に左辺の値が右辺の値よりも大きい(左辺未満)となり「左辺>右辺」と使います。

A==B

左辺と右辺の値が等しい場合は、数学ですと=を使いますが、プログラムで表現する際は==とイコールを2つ続けて入力し、「左辺==右辺」と使います。
こちらイコールをA===Bと3つ続けて書く場合もありまして、値だけでなくデータ型まで同じ際に使用します。
もし厳密に左辺と右辺が等しいとしたい場合は、イコールを3つ続けた書き方にした方が良いです。

A!=B

左辺と右辺の値が等しくないというのを表現したい場合、数学ですと≠というのを使います。
プログラムでは、こちらの記号は使用できずビックリマークとイコールを使って表現します。
「左辺!=右辺」というように使います。

参考:比較演算子
参考:条件式の「==」と「===」の意味と違いの3つのポイント

代入演算子

代入演算子とは、先ほど出てきました$i+=1のように変数に値を代入する際に使う+=などの記号のことをいいます。
こちら他にも演算子があり、左辺の変数に値を代入する際に使用します。

$A=B

変数に右辺の値を代入する際は=を使います。
この際、気を付けて頂きたいのが、プログラムでは=(イコール)1つでは等しいという意味ではなく代入という意味で使用します。
例えば

——————
$i = 10;
$i = $i + 5;
——————

のような計算式があったとします。
最初は変数$iに10が代入されています。この時点で$iは10です。
その次の行で$i = $i + 5;とあります。
こちらの計算式は先に右辺の計算を行い、その結果を左辺に代入します。
上記例ですと、10+5の結果15を$iに代入し、最終的に$iは15ということになります。
こちら最初は慣れないかと思いますが、これからプログラムを組んでいきますと理解が深まってくるかと思いますので今は代入を意味しているということを覚えておきましょう。

$A+=B

先ほど例として取り上げました$i = $i + 5;をもっと短縮して書くことができます。
その際に使用するのが+=という演算子でして、先ほどの式を$i+=5;とすることができます。
こちらを加算代入演算子といいます。

$i = $i + 1;と加算する数が1だった場合は、さらに短縮することができまして$i++;となります。
こちらの$i++を「インクリメント」といいます。
$i++はよく使いますので覚えておきましょう。

$A-=B

減算して代入する際も例えば$i=$i-5;と書きますが、さらに短縮することが出来ます。
その際に使用するのが-=という演算子でして、先ほどの式を$i-=5;とすることができます。
こちらを減算代入演算子といいます。

$i = $i – 1;と減算する数が1だった場合は、さらに短縮することができまして$i–;となります。
こちらの$i–を「デクリメント」といいます。
こちらも覚えておきましょう。

$A*=B

掛け算をした後に代入する場合もありまして、掛け算では*(アスタリスク)を使います。
四則演算の際に使用する記号については「【第五回】PHPでシステム開発を実践!基本的な構文②」で取り上げていますので、もしよろしければご覧下さい。

例えば$i=$i*5;という計算式があった場合、右辺で乗算した後に左辺の変数に代入します。
こちらの計算式をさらに短縮することが出来まして、$i*=5;とすることができます。

ただこちらはこれまで出てきました加算演算子や減算演算子とは違い、$i = $i * 1;の場合、$i**;とすることは出来ませんので注意して下さい。

$A/=B

割り算をした後に代入する場合もありまして、割り算では/(スラッシュ)を使います。
四則演算の際に使用する記号については「【第五回】PHPでシステム開発を実践!基本的な構文②」で取り上げていますので、もしよろしければご覧下さい。

例えば$i=$i/5;という計算式があった場合、右辺で除算した後に左辺の変数に代入します。
こちらの計算式をさらに短縮することが出来まして、$i/=5;とすることができます。

ただこちらはこれまで出てきました加算演算子や減算演算子とは違い、$i = $i / 1;の場合、$i//;とすることは出来ませんので注意して下さい。

参考:代入演算子
参考:演算子一覧
参考:インクリメント 【increment】 inc

まとめ

今回は繰り返し処理と演算子について取り上げました。
全てよく使う基本的なところになります。

演算子は今回取り上げたもの以外にもあり、より複雑なプログラムを組んでいきますと必要になっていきます。

また、繰り返し処理と他の処理を組み合わせて使うこともよくあります。
基本的なことを押さえておきますと応用が利きますので、しっかり習得しておきましょう。

この記事をシェアしましょう!