2009-04-19 5 views
5

私はSCJPの練習資料を読んで、フロー制御の章を飛び越え、 "else if"というキーワードを単独で使用しているという印象を受けました。私はいつもそれがちょうど普通のelseであると考えていましたが、ブロックが省略されたifブロックだけが含まれていました。Javaでは "else if"は1つのキーワード全体か2つの別個のキーワードですか?

これはどちらですか?

編集:この質問は、「深刻なビジネス」よりも「私の関心が高い」カテゴリにあることを強調したいと思います。

+0

も参照してください:(真/偽)であればhttp://stackoverflow.com/questions/637980/if-else-and-if-elseif – Gumbo

答えて

6

2つの単語の間のスペースで示される2つの別個のキーワードとなります。

6

それは実際に私は何のJava専門家だが、Cでそれは確かに二つの異なるキーワードとして定義されています、とJavaはCの構文のその部分からかなり自由に盗んだ

else { 
    if { ... } 
} 
+0

}他{ } は、あまりにも動作します。 – scheibk

0

言います。

それにもかかわらず、試験での愚かな質問以外では、実際にはそれほど大きな違いはありません。その効果はいずれの場合も同じです。

+0

ええ、私は実用的な無意味さを認識しています。奇妙な理由のために、私はこれらの無関係のデータを知りたい。 –

10

はい、これらは別々の2つのキーワードです。Java language specificationにはelse ifキーワードが指定されていません。実際には、他のポスターが言ったように、ifステートメントはelseステートメントの内部に含まれています。

EDIT:多くのトレーニング/教材は、else ifが実際にはキーワードであることを暗示しているようです(実際には、通常はそのように扱われます)が、これはわかりやすいように思っています/シンプルさと、精度を犠牲にする結果。

0

アセンブリをデバッガで開くと、 "if"文が認識されます。

+0

質問には答えません。また無意味。アセンブリは、ソースコードで使われたキーワードを教えてくれません、 – EJP

1

私は信じる2つの別々のキーワード。しかし、以外のの場合はであることはできません。

Java Lexical Structure

+0

あなたは真剣にあなたがelse文を書くことができないと言っていますか? :P –

+0

あなたは私が何を意味するか知っています... – edwardsmatt

3

これは、2つのキーワードです。

elseの後にブロックまたは単一のステートメントが続きます。

の場合elseの場合。ステートメントはステートメントの場合は別のです。

更新

それはが深くネストされた if文のための一般的なスタイルの選択であり、この状況は非常に読みやすく、ネストより行った場合、その他に言及して損はありません。 スイッチステートメントでフォールスルーの動作が必要な場合を除き、代わりにの場合はを使用します。

1

一部の言語では 'elsif'、 'elseif'、または 'else if'が別のステートメント(「case」ステートメントと似ています)として存在しますが、Javaはその1つではありません。

関連する問題