2011年2月6日 | (注意書きを追加) |
2002年12月6日 | (更新履歴を更新) |
2002年7月21日 | 書き殴り公開 |
C・C++・Java・Perl などのプログラミング言語では、条件演算子として三項演算子?:が用意されている。条件演算子の書き方として、以下のような説明がされることが多い。
condition ? true-expression : false-expression
この説明は、以下のプログラムと同じ程度、間違っている。
#include <stdio.h>
main( ){printf ("hel"
"lo, world\n"
);}
条件演算子は、正しくは以下のように書く。
condition ? true-expression
: false-expression
使い方の例を示す。
compare =
obj1 == null ? obj2 == null ? 0
: -1
: obj2 == null ? 1
: obj1.toString().compareTo(obj2.toString());
条件演算子には、以下の表記方法もある。この表記は、 switch文や else-if構文と同様に使える。
case1 ? expression1:
case2 ? expression2:
case3 ? expression3:
...
default-expression
この表記の例を示す。
a = c >= 'A' && c <= 'Z' ? c - 'A':
c >= 'a' && c <= 'z' ? c - 'a' + 26:
c >= '0' && c <= '9' ? c - '0' + 52:
c == '+' ? 62:
c == '/' ? 63:
-1;
こんないい加減なページに限って、なぜか大人気なので、念のため注意。このページの内容は、あまり真に受けず、「こんな考え方もある」程度に受け取ってください。