P.139
例:「算術代入式 -= 」

$a = 3; while ($a) { print "現在:$a \n"; $a -= 1; } <実行結果> 現在:3 現在:2 現在:1
例:「数式評価」
$a = 3; while ($a < 5) { print "現在:$a \n"; $a += 1; }
<実行結果> 現在:3 現在:4 P.140
例:「数値合計」 while (1) { print "\n数値:"; $ax = <STDIN>; $sum += $ax; print "合計:$sum \n"; }
<実行結果> 数値:65 合計:65 数値:72 合計:137 ・・・
例:「名前入力」 while (2 > 1) { print "名前:"; $name = <STDIN>; chomp $name; print "$name さんですね \n\n"; }
<実行結果> 名前:あきら あきらさんですね 名前:友香 友香さんですね ・・・
P.141 例1:「++$a を評価」
$a = -3; while (++$a) {print "現在:$a \n"}
<実行結果> 現在:-2 現在:-1
P.142 例2:「$a++ を評価」
$a = -3; while ($a++) {print "現在:$a \n"}
<実行結果> 現在:-2 現在:-1 現在:0
例3:「--$a を評価」
$a = 3; while (--$a) {print "現在:$a \n"}
<実行結果> 現在:2 現在:1
P.143 例4:「$a-- を評価」
$a = 3; while ($a--) {print "現在:$a \n"}
<実行結果> 現在:2 現在:1 現在:0
P.144 例1:「last」
$a = $b = 1, $k = 2; while (++$k) { $c = $a + $b; if ($c > 100) {last} print "第 $k 項:$c \n"; $a = $b; $b = $c; }
<実行結果> 第 3 項:2 第 4 項:3 第 5 項:5 第 6 項:8 第 7 項:13 第 8 項:21 第 9 項:34 第 10 項:55 第 11 項:89
例:「next」
$t ue = 1234; $k = 3; while ($k--) { print "\n 番号:"; $ax = <STDIN>; if ($ax != $true) {print "\n 一致しません。あと $k 回。\n"; next} else {print "\n 一致しました。\n"; last} }
<実行結果> 番号:1122 一致しません。あと 2 回。 番号:1133 一致しません。あと 1 回。 番号:1144 一致しません。あと 0 回。
例3:「redo」
$true = 1234; $k = 3; while ($k--) { print "\n 番号:"; $ax = <STDIN>; if ($ax != $true) {print "\n 一致しません。あと $k 回。\n"; redo} else {print "\n 一致しました。\n"; last} }
<実行結果> 番号:1122 一致しません。あと 2 回。 番号:1133 一致しません。あと 2 回。 番号:1144 一致しません。あと 2 回。 ・・
例4:「exit」
$true = 1234; $k = 3; while ($k--) { print "\n 番号:"; $ax = <STDIN>; if ($ax != $true) { if ($k == 0) {print "\n 不正な入力です。\n"; exit} print "\n 一致しません。あと $k 回。\n"; next } else {print "\n 一致しました。\n"} }
<実行結果> 番号:1122 一致しません。あと 2 回。 番号:1133 一致しません。あと 1 回。 番号:1144 不正な入力です。
例:「カウントダウン」
print "カウントダウン \n\n"; $k= 10; until ($k < 0) { print "$k .."; $k-- } print "\n\n", "Go!.." x 3;
<実行結果> カウントダウン 10 .. 9 .. 8 .. 7 .. 6 .. 5 .. 4 .. 3 .. 2 .. 1 .. 0 .. Go!.. Go!.. Go!.. 例1:「通常の while の場合」
$a = 3; while (--$a) {print "現在:$a \n"}
<実行結果> 現在:2 現在:1
例2:「do〜while の場合」
$a = 2; do {print "現在:$a \n"} while (--$a)
<実行結果> 現在:2 現在:1
例1:「数値指定」
for (1..3) {print "こんにちは!\n"}
<実行結果> こんにちは! こんにちは! こんにちは!
例2:「変数指定」
$n = 3; for (1..$n) {print "こんにちは!\n"}
<実行結果> こんにちは! こんにちは! こんにちは!
例3:「途中からのカウント」
for (4..6) {print "こんにちは!\n"}│← 4,5,6 の3回実行します。
<実行結果> こんにちは! こんにちは! こんにちは!
例1:「カウント表示」
for $k (1..3) {print "現在:$k \n"} <実行結果> 現在:1 現在:2 現在:3
例2:「途中からの場合のカウント表示」
for $k (4..6) {print "現在:$k \n"}
<実行結果> 現在:4 現在:5 現在:6
例:「中間変数を省略」
for (7..9) {print "現在:$_ \n"}
<実行結果> 現在:7 現在:8 現在:9
例1:「任意の数値配列」
for $k (15,3,55) {print "現在:$k \n"}
<実行結果> 現在:15 現在:3 現在:55
例2:「クラス毎の生徒番号」
for $k (1101..1103, 1201..1203, 1301..1303) {print "番号:$k \n"}
<実行結果> 番号:1101 番号:1102 番号:1103 番号:1201 番号:1202 番号:1203 番号:1301 番号:1302 番号:1303
$k = $k + 2,$k += 3,$k = $k**2 - 1
例1:「 7 の倍数の表示」
for ($a = 7; $a < 100; $a += 7) {print "$a "}
<実行結果> 7 14 21 28 35 42 49 56 63 70 77 84 91 98
例1:「フィボナッチ数列の表示(1)」
for ($a=1, $b=1; $c < 100; $c = $a + $b, $a = $b, $b = $c) {print "$c "}
<実行結果> 2 3 5 8 13 21 34 55 89
例2:「フィボナッチ数列の表示(2)」
for ($a=1, $b=1; $a < 100; $c = $a + $b, $a = $b, $b = $c) {print "$a "}
<実行結果> 1 1 2 3 5 8 13 21 34 55 89
例1:「不等号付きのイコール」
for ($a = 1; $a <= 9; $a += 2) {print "$a "}
<実行結果> 1 3 5 7 9
例2:「イコールのみ(エラー)」
for ($a = 1; $a = 9; $a += 2) {print "$a "}
<実行結果> ・・・
例1:「名前の出力」
@class = ("青山霞", "小川橙", "白瀬藍", "滄海澪"); foreach $name (@class) {print ++$k, " : $name \n"}
<実行結果> 1 : 青山霞 2 : 小川橙 3 : 白瀬藍 4 : 滄海澪
例2:「sort をかけた名前の出力」
@class = ("リリー", "Robert", "ゆうこ", "armadillo", "友香", "1101", "Elizabeth"); foreach (sort @class) {print "$_ \n"}
<実行結果> 1101 Elizabeth Robert armadillo ゆうこ リリー 友香