2010年7月30日金曜日

for = 繰り返し文その2 - AWK

AWKのパターンと制御文
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
for の後ろに続く文を繰り返します。
もしくは、指定した配列の要素の数だけ、後ろに続く文を繰り返します。

**** 書式
--------
for ([初期化する文] ; [条件] ; [更新する文]) 繰り返し実行する文
または
for (変数 in 配列) [繰り返し実行する文]
--------

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

o 変数 -- 配列の添え字が渡されます。取り出す添え字が無い時は、この値は更新されません。
o 配列 -- 名前の通りです。配列の要素を1つずつ取り出して処理する事が出来ます。


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

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


**** 機能
o for 文は、カッコ内の記述に従って、繰り返し実行します。
o for 文の入口で、「初期化する文」を1回だけ実行します。
o 次に「条件」を使って、継続判定を行います。条件が真の間だけ繰り返します。
o 「繰り返し実行する文」の最後に到達したら、「更新する文」を実行してから、「条件」による継続判定を行います。
o 条件を判定するタイミングは、次の通りです。
   + forの入口で、[初期化する文]を実行した直後
   + 「繰り返し実行する文」の最後に到達して、先頭に戻り、「更新する文」を実行した直後
   + 「繰り返し実行する文」の途中でcontinueを呼び出して先頭に戻り、「更新する文」を実行した直後


**** 確認した処理系
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
    ▼制作メモ
    > break = 繰り返し文を途中終了する
    continue = 繰り返し文の先頭に戻る
    func = (functionの旧形式)
    +
    do = 後でwhile判定する繰り返し
    if = 条件に一致したら実行する
(2010年8月24日変更。「条件式」=>「条件」。「条件式は真偽値のみ取る」との解説を見かけたので、その表現を避けた)