until文を使った繰り返し処理

繰り返し処理の中で条件式が偽の間ずっと繰り返し処理を行うには until 文を使うと便利です。ここでは Perl における until 文を使った繰り返し処理を行う方法について解説します。

(Last modified: )

until文を使った繰り返し処理

while 文と似た制御構造として until 文が用意されています。 until 文は条件式が偽の間ブロック内の処理を繰り返します。書式は次のようになっています。

until (条件式){
  実行する処理1;
  実行する処理2;
}

基本的な動作は while 文と同じです。まず条件式を評価し、条件式が偽だった場合にはブロック内の処理を行い、そして改めて条件式を評価します。

実際のプログラム例としては次のようになります。

my $count;

$count = 0;
until ($count >= 2){
  print "count = $count \n";
  $count ++;
}

until 文では条件式が偽の間繰り返しを行います。条件式に否定を使うことでまったく同じ処理を while 文を使って記述させることができます。

my $count;

$count = 0;
while (!($count >= 2)){
  print "count = $count \n";
  $count ++;
}

until 文をあえて使わなくても while文だけでプログラムを記述できるのでどちらかに統一しておいてもいいですが、場合によっては until 文を使った方が処理の記述がすっきりする場合があります。

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $count = 1;

until ($count > 100){
  print "count = $count \n";
  $count = $count * 2;
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

until文を使った繰り返し処理(1)

繰り返し処理の中で変数に格納した値を順に 2 倍していき、変数の値が 100 より大きくならない間は繰り返し処理を行いました。

-- --

Perl における until 文を使った繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。