- 基礎知識 -
はじめに
必須項目
転送設定
- 変 数 -
スカラー変数
配列説明
ハッシュ説明
- 関 数 -
関数説明
- 演算子 -
演算子
- 構 文 -
構文説明
条件構文
ループ構文
- 正規表現 -
正規表現
マッチング
置換演算子
- サブルーチン -
サブルーチン
- 環境変数 -
環境変数
while ( 条件その1 ){ 処 理 } / until ( 条件その1 ){ 処 理 }
「while」とは、
条件に当てはまる間は指定した処理を繰り返し行い、条件があてはまらなくなった時に処理を中断し、次の処理に移ります。
また、「until」は「while」の逆の処理をします。このように処理を繰り返し行う作業の事を「ループ」といいます。
while
$data = "0";
while ($data <= 15) #$dataの値が15未満であれば処理を繰り返す。
{
print "$data\n";
$data++;
}
exit;
出力結果:123456789101112131415
while
比較し条件に当てはまる場合のみ繰り返す構文
++
処理を完了してから1つ増やす演算子
until
■上記の表を構文で表現すると下記のようになります。
$data = "0";
until ($data >15) #$dataの値が15以上でなければ処理を繰り返す。
{
print "$data\n";
$data++;
}
exit;
出力結果:123456789101112131415
until
比較し条件に当てはまらない場合のみ繰り返す構文
このようにして使用します。しかし、条件に当てはまらない場合は何も処理されません。当てはまる時も当てはまらない時も処理(一度だけ)をさせたい場合は「do」を使用します。
余談ですが、表で繰り返し時に「$data++」というものがありますが、これは前項でお伝えした「インクリメント演算子」です。詳しくは前項の演算子欄をご覧下さい。
do { 処 理 } while(条 件) / do { 処 理 } until (条 件)
「while」を「do」と組み合わせて使用すると、条件に当てはまらない場合でも一度だけ指定された処理を行います。「until」と「do」は「do〜while」の逆の意味となります。使用方法は「do〜while」と全く同じです。この構文はあまり使用した事がありません。(たまたま使う機会がないだけだと思うのですが・・・・)とりあえず覚えましょう。
※条件結果に関係なく一度は処理を行う構文です。
do〜while
■上記の表を構文で表現すると下記のようになります。
$data=16; #スカラー変数$dataに16を代入する
do{
print "$data"; #この部分が一度だけ
$data++; #実行されます。
} while ( $data <= 15); #「do〜while」時のみ、語尾に「;」が付く
do〜until
■上記の表を構文で表現すると下記のようになります。
$data=16;
do{
print "$data";
$data++;
} until ( $data <= 15); #「do〜while」時のみ、語尾に「;」が付く
for ( 初期化 ; 条件 ; 条件となるものの処理 ) { 処 理 }
記述方法は、最初に初期値として変数を記述します。(変数名は自由です)次に「;(セミコロン)」を書いて比較する条件を記述し、処理内容を記述します。「for」は「ループ」の中で一番使われる(私の中では・・・)構文です。面倒な記述を一まとめにできるので、見た目もスッキリとします。よく掲示板などの件数表示で「一度に20人表示しよう!」と思った時、必然的に「for」が頭を過ぎる程です。便利なので覚えて下さい。
※あらゆる処理を一箇所にまとめて処理する構文です。
for
■上記の表を構文で表現すると下記のようになります。
【while構文】
$data = 0;
while($data <= 15){
print $data;
$data++;
}
※この上下の構文は同じ意味です。
【for構文】
for ($data = 0; $data <= 15; $data++){
print $data;
}
意味:最初に$dataに0を代入します。そして$dataの値が15より大きい小さいかを比較し、小さければ$dataの値を出力してから$dataに1を足します。これを15になるまで繰り返します。
随分すっきりとしたプログラムになりしたね。他のプログラムにも言えることですが、一つの処理にはたくさんの解決方法(組み方の種類)があります。プログラムの記述がが多いと、必然的に機械の処理も遅くなりますので、出来るだけ端的に記述できるようになりましょう。
foreach スカラー変数名 ( 配列名 ){ 処 理 }
配列内の要素(リストが含む要素の事)を一つずつ処理する時に使用されるのが「foreach」構文です。この構文は配列のリストでのみ使用する構文なので「配列=foreach」と覚えれて下さい。ちなみに配列として指定する複数の要素全てを「リスト」と呼びます。忘れた方は変数項目の「配列」をご覧下さい。
※配列のリストのみ使用する構文
foreachの記述例
@hairetu=(1,2,3,4); #配列名と要素を記述します。
foreach $hairetu(@list) #配列から要素を呼ぶ時は「$」を使用する
{
print $hairetu; #リスト内の順番通りに出力する
}
出力結果:1234
動作説明:foreach構文は、@hairetu内の要素をリスト順に 一つずつ $hairetuへ代入します。一つ目の「1」が代入されると、「{ }」内が実行されます。そして次に二つ目の「2」〜次に三つ目の「3」〜というような感じで処理されます。
謎の変数「$_」
上記に「foreach スカラー変数名(配列名){処理}」と記述してあります。このスカラー変数を省略する事が出来るのです。他の構文でも「その構文内のみで使用する変数を記述する」という決まりがありますが、正直いちいち考えて記述するのは面倒です。foreachではスカラー変数を記述しない場合、スカラー変数名は「$_」という謎の変数名となります。※目には見えません。
とりあえず構文の勉強はこれで終わります。判らない方は専門書などをご覧下さい。