until文
while文と似た制御構造としてuntil文が用意されています。while文が条件式が真の間ブロック内の処理を繰り返すのに対してuntil文は条件式が偽の間ブロック内の処理を繰り返します。まずは書式から確認します。
until (条件式){ 実行する処理1; 実行する処理2; }
基本的な動作はwhile文と同じです。まず条件式を評価し、条件式が偽だった場合にはブロック内の処理を行い、そして改めて条件式を評価します。
実際のプログラム例としては次のようになります。
my $count; $count = 0; until ($count >= 2){ print "count = $count ¥n"; $count ++; } print "以上です";
条件式が偽の間繰り返しを行いますので、条件式に否定を使うことでまったく同じ処理をwhile文を使って記述させることが出来ます。
my $count; $count = 0; while (!($count >= 2)){ print "count = $count ¥n"; $count ++; } print "以上です";
until文をあえて使わなくてもwhile文だけでプログラムを記述できますが、場合によってはuntil文を使った方が処理の記述がすっきりする場合があります。
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $count; $count = 0; until ($count >= 2){ print "count = $count ¥n"; $count ++; } print "以上です";
上記を「test2-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
( Written by Tatsuo Ikura )