[トップページ]
[戻る]
フロー制御
do 文
for 文
for 文は、ループ処理を行います。
for ( 式1; 式2; 式3 ) {
文1
…
[last;]
}
式1は for 文の最初に実行されるため、初期化処理を行うことが多いです。
式2はループを継続するための条件です。この条件が真の間、ループは続行されます。
式3は for 文の最後に実行されるため、カウンタのインクリメント(1ずつ増加)を行うことが多いです。
ループを強制的に終了する場合は、last;を記述します。
(例)配列 @list の要素をすべて表示します
@list = ("aaa", "bbb", "ccc", "ddd", "eee", "fff");
# 配列の要素数を取得します
$list_count = @list;
# ループ処理
for ($idx = 0; $idx <= $list_count - 1; $idx++) {
print "$list[$idx]\n";
}
foreach 文
foreach 文は、配列のループ処理を行います。
foreach 変数名 ( 配列名 ) {
文1
…
[last;]
}
foreach 文は配列のループ処理を行うのに適しています。配列名で記述された配列の要素が無くなるまで、変数名で記述された変数に代入し、ループを続けます。ループを強制的に終了する場合は、last;を記述します。
(例)配列 @list の要素をすべて表示します
@list = ("aaa", "bbb", "ccc", "ddd", "eee", "fff");
# 配列の要素を1つずつ print します
foreach $str (@list) {
print "$str\n";
}
goto 文
if...elsif...else 文
if 〜 else 文は条件式により、プログラムを分岐させます。
if ( 条件式1 ) {
文1
…
}
elsif ( 条件式2 ) {
文2
…
}
else {
文3
…
}
条件式1の条件が真となる場合、文1・・・のブロックが処理されます。
条件式1の条件が偽で、条件式2の条件が真の場合、文2・・・のブロックが処理されます。
条件式1、条件式2の条件が偽の場合、文3・・・のブロックが処理されます。
(例)$count の値が10のとき、$count に10を足し算します。$countが10未満のとき、
$count の値に100を足し算します。それ以外の場合、$count を0にします。
if ($count == 10) {
$count = $count + 10;
}
elsif ($count < 10) {
$count = $count + 100;
}
else {
$count = 0;
}
last 文
next 文
redo 文
while 文
while 文はループの処理を行います。
while ( 条件式 ) {
文1
…
[last;]
}
条件式が真の間、ループが続行されます。ループを強制的に終了する場合は、last;を記述します。
(例)ファイル read_file を読み込みます
$read_file = "http://xxxxx/~user/userdata.dat";
# ファイルをオープンします
if (!open(FILE "$read_file")) {
print "FileOpen Error\n";
exit;
}
# 1行ずつ print します
while ($data = <FILE>) {
print "$data\n";
}
close(FILE);
[トップページ]
[戻る]
Copyright (C) 2000 Me All rights reserved
Mail To webmaster