2010年7月30日金曜日

do = 後でwhile判定する繰り返し - AWK

AWKのパターンと制御文
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
doの後ろに続く文を繰り返します。繰り返し時の条件判定は、文の次に置かれたwhileにて行います。


**** 書式
--------
do 繰り返し実行する文 while (条件)
--------

o 繰り返し実行する文 -- 空文や複文も指定出来ます。
   + 空文は、内容か空で、; (セミコロン)だけを書いた文です。
   + 複文は、{ と } で囲んだものです。中には複数の文を書く事が出来ます。
o 条件 -- 真偽を判定する式です。
   + 条件式の他に、数値や文字列を使う事も出来ます。
   + 1 や "a"など、何かが入っている時は、真になります。
   + 0 や "" の時は、偽になります。


**** 使用例
--------
BEGIN {
  do {
    print ++i;
  } while (i < 3);
  print "1から3まで出力しました。";
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o do の次に置かれた文を繰り返します。繰り返し時の条件判定は、文の次に置かれたwhileにて行います。
o do の次に置かれた文は、必ず1回実行します。条件判定は、文を繰り返す時だけ行います。
o 条件を判定するタイミングは、次の通りです。
   + doの次に書いた文の最後に到達して、先頭に戻ってきた時。
   + doの次に書いた文の途中でcontinueを呼び出して、先頭に戻ってきた時。
o 条件を書かないと、エラーメッセージが表示されます。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007)


==
関連ページ:
    ▼AWKのパターンと制御文▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > for = 繰り返し文その2
    break = 繰り返し文を途中終了する
    continue = 繰り返し文の先頭に戻る
    +
    while = 条件付きで繰り返す
(2010年8月24日変更。「条件式」=>「条件」。「条件式は真偽値のみ取る」との解説を見かけたので、その表現を避けた)