魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

c++② コンマ演算子

今回は、c++の風変わりで独特の演算子を紹介する。

(式1 , 式2)

式が2つあるがこの値は1つで、式2の値が、全体の値となる。
文としては1つの文なのだ。どういうとこで使うのか、
何がうれしいのか。
式は(特に式1は)価をもたない実行文でもよい。
1行に2つの文を書けるので、横着者にはもってこいだ。
有効な使い道がある。

while(c=get(fp) , c!=EOF)

上は、ファイルから、1文字読み込んで、cに入れている。
whileループで繰り返し、EOFになったら、抜けるという、
ループの条件判断行だ。
一番外の括弧の値は、,の後ろの式の値だ。つまり、
通常時は、EOFでは無いと言う真偽値だ。
ファイルが、EOFになったら偽となる。これは、便利だ。

if(a>b)
max=a , min=b;
else
max=b , min=a;

と、ブロック化せずとも、処理できる。
これは、1行に2つ(文法的には1つ)の実行文が書けると言う
だけのことだ。

他にも応用がありそうだね。

cには無いのかなあ。