else if について
田中久太郎です。
JavaScriptで elseifは使えるんだろうかと疑問に思い、調べてみましたが、
「使えます」と明言したドキュメントを見つけることができませんでした。
ためしに、
if (〜){〜} elif (〜){〜} else {〜}
というプログラムを作って
elif の箇所を「elsif」とか「elseif」とか「else if」に変えて実行させて
みると、「else if」で普通に動作することを確認しました。(IE5,IE6で確認)
で、ECMAScript Language Specificationをよく読むと
12.5 The if Statement
Syntax
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
と書かれていて、なんだ else に続くStatementには IfStatementを入れ子に
できるんだ、と納得した次第です。
で、疑問に思ったのが、なんで他の言語で elsif とかいう中途半端な略語の
構文があるのか?というところ。
全部 else if で良さそうなものを、よっぽどタイピングをさぼりたかったの
か、もしくは他の不都合があったのか・・・
どうしてなんでしょうか?
ifなど条件分岐の各言語での違いみたいなものをまとめた文献とかあったら、
ご紹介いただけるとうれしいです。
以下、とりあえず、わかっているもの。
・ELSE IF (JavaScript, Java, C ...)
IfStatement :
if ( Expression ) Statement else Statement
if ( Expression ) Statement
StatementにはIfStatementも指定できるので
if ( Expression ) Statement else if ( Expression ) Statement else Statement
というように入れ子にできる
・ELSEIF (VisualBasic...)
If condition Then
statements
ElseIf elseifcondition Then
elseifstatements
Else
elsestatements
End If
・ELSIF (Perl ...)
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
・ELIF (shell ...)
if condition1
then
command1
elif condition2
then
command2
else
command3
fi
#あ、なんかブロックの括り方に関係ありそうですね・・・
--
Tanaka-Qtaro-Yasuhiro mailto:tanaq@ca2.so-net.ne.jp
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