Re: else if について
河野真治 @ 琉球大学情報工学です。
In article <u4qqpbl0q.fsf@anet.ne.jp>, OOTANI TAKASHI <tksotn@anet.ne.jp> writes
> PL/IのSELECT/WHENはLISPのCONDのようにもCのswitch/caseのようにも使えるので、
> それに習って、Cではswitch構文が、
> switch {
> case (cond1): stmt11; stmt12; break;
> case (cond2): stmt21; stmt22; break;
> case (cond3): stmt31; stmt32; break;
> default: stmt01; stmt02; break;
> }
> のように拡張されれば、else ifの連鎖は大部分不要になるでしょうね。
僕は else if の方がきれいだと思うけど、人それぞれかな。
逆に switch 文はいらないんだという説もあるみたいですね。
現実には、if else if 連鎖の最適化でも結構難しいから、
siwtch 文みたいな制限があった方が良いだろうと思います。
この拡張だと、cond1 - cond3 の順序関係が不定になりますよね。
else if は上から順々なんでしょうけど。式に副作用がでまくりの
C だとちょっとうれしくないな。
case *p++ ==' a': ...
case *p++ ==' b': ...
とか書く奴がきっと出るような気がする。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735