if = 条件に一致したら実行する - AWK
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
条件に一致したら実行します。一致しなかった時の実行文も書く事が出来ます。**** 書式
--------
if (条件) 真の時に実行する文
もしくは
if (条件) 真の時に実行する文 else 偽の時に実行する文
--------
o 条件 -- 真偽を判定する式です。
+ 条件式の他に、数値や文字列を使う事も出来ます。
+ 1 や "a"など、何かが入っている時は、真になります。
+ 0 や "" の時は、偽になります。
o 真の時に実行する文 -- 空文や複文も指定出来ます。
+ 空文は、内容か空で、; (セミコロン)だけを書いた文です。
+ 複文は、{ と } で囲んだものです。中には複数の文を書く事が出来ます。
o 偽の時に実行する文 -- 空文や複文も指定出来ます。
**** 使用例
--------
{
if ($0 ~ "ミク") {
print FNR "行目にて、ミクさんを発見しました。";
++MikuCount;
}
else {
print FNR "行目。見つかりませんでした。";
}
}
END {
print "# ミクさんは、" MikuCount "回登場しました。";
}
--------
o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。
o else の書き方は、プログラムの構造が一目で分かるものを選びました。
**** 機能
o 条件が真の時、「真の時に実行する文」を実行します。
o 条件が偽の時、else があると「偽の時に実行する文」を実行します。
o 条件を書かないと、エラーメッセージが表示されます。
記号 | 書き方 | 意味 |
---|---|---|
比較演算子 | ||
== | A == B | AがBと等しい時に真。比較の時は、等号を2つ並べます。 |
!= | A != B | AがBと等しくない時に真。 |
~ | A ~ /B/ | Aの一部が、正規表現Bに一致した時に真。("ミクさん" ~/ミク/) は真 「~」キーは、キーボードの右上にあります。数字の「0」キーの2つ右「^」を、シフトキーを押しながら。 |
!~ | A !~ /B/ | Aが、正規表現Bに全く一致しなかった時に真。("ミクさん" !~/リン/) は真 |
> | A > B | Aの方が大きい時に真 |
>= | A >= B | Aの方が大きいか、等しい時に真 |
< | A < B | Aの方が小さい時に真 |
<= | A <= B | Aの方が小さいか、等しい時に真 |
論理演算子 | ||
&& | A && B | AとBの両方が真の時に真。別名AND |
|| | A || B | AとBのどちらかが真の時に真。別名OR |
! | !A | Aの反対。Aが偽の時に真 |
**** メモ
o 条件によって 2つの値のどちらかを入れる時は、条件演算子 ?: を使う書き方もあります。
**** 確認した処理系
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
▼制作メモ
> else = ifで実行しない時に実行する
switch = 選択肢を選んで実行する(Gawk専用)
case = switch文の中で、選択肢を指定する(Gawk専用)
+
?: = 条件演算子
for = 繰り返し文その2
(2010年8月27日追加。どちらかの値を入れる時は、条件演算子 ?:で置き換える事が出来る)
(2010年8月24日変更。「条件式」=>「条件」。「条件式は真偽値のみ取る」との解説を見かけたので、その表現を避けた)
(2010年8月23日追加。if文で良く使われる演算子として、論理演算子を追加)