Perlのdo〜while文(後編)
前回の続き。
ここまでの話をまとめるとdo〜while
文は、
for (条件) { 処理; }
とか、while (条件) { 処理; }
とは異なり、
式 if 条件;
とか、式 while 条件;
の仲間っぽい。
つまり、こういうこと。
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