Perlのdo〜while文(後編)
前回の続き。
ここまでの話をまとめるとdo〜while
文は、
for (条件) { 処理; }
とか、while (条件) { 処理; }
とは異なり、
式 if 条件;
とか、式 while 条件;
の仲間っぽい。
つまり、こういうこと。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | use strict; use warnings; use v5.10; my $i = 0; $i ++ while $i < 10; say "\$i = $i" ; say '---' ; $i = 10; $i ++ while $i < 10; say "\$i = $i" ; say '---' ; $i = 10; do $i ++ while $i < 10; say "\$i = $i" ; say '---' ; $i = 10; do { $i ++; } while $i < 10; say "\$i = $i" ; |
これを実行すると、こんな感じ。
$ perl ccc.pl
$i = 10
---
$i = 10
---
$i = 10
---
$i = 11
という訳で、perlsyn – Perl の文法 – perldoc.jpに書いてある通り、
do { BLOCK }
に限っては、条件式が評価される前に一度BLOCK
が実行されるので、
C言語のdo〜while
文のように使えるけど、do
のBLOCK
はループとして扱われないので、
ループ制御文(next
, last
, … etc)を使う場合は注意しましょうというお話でした。
おしまい。
Leave a Comment