2010年8月25日水曜日

?: = 条件演算子 - AWK

AWKの数値計算関数と関連機能
AWKの文字列操作関数と関連機能
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
条件によって、2つの内どちらか1つの値を取ります。

o AWKで「三項演算子」と言えば、これの事を指します。3つの値を使う特徴があります。


**** 書式
--------
条件 ? 真の時に取る値 : 偽の時に取る値
--------

o 条件 -- 真偽を判定する式です。
   + 条件式の他に、数値や文字列を使う事も出来ます。
   + 1 や "a"など、何かが入っている時は、真になります。
   + 0 や "" の時は、偽になります。
o 真の時に取る値 -- 数値や文字列を指定します。配列を指定する事は出来ません。
o 偽の時に取る値 -- 数値や文字列を指定します。配列を指定する事は出来ません。


**** 使用例
--------
{
  v = ($0 ~ "ミク") ? "ミクさん" : "青いマフラー"; # 丸括弧は無くても動きます。
  print NR "行目に登場するのは、" v "。";
}
--------

o 2行目の丸括弧は、本来不要です。でも、条件を分かり易くする為に付けました。
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o 条件によって、2つの内どちらか1つの値を取ります。
o 返す値は、数値や文字列を指定します。配列を指定する事は出来ません。

** 処理系に依存する動作
o 配列を指定した時、処理系によって動作が異なります。
o 配列を返す時だけエラーメッセージを出力する処理系
   + Gawk on Windows 3.1.7
   + Gawk for Windows 3.1.6
   + original = the one true awk(updated May 1, 2007)
o 配列を指定した時にエラーメッセージを出力する処理系
   + mawk32 1.3.3
   + Mawk for Windows 1.3.3


**** メモ
o この演算子は、制御文の if に置き換える事も出来ます。
   + どちらを使うかは、お好みで。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk32 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プログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > ▼AWKの時刻取得機能
    +
    if = 条件に一致したら実行する
    switch = 選択肢を選んで実行する(Gawk専用)
(2010年8月27日追加。ifに置き換える事が出来る)