2012-01-10 8 views
5

変数iが使用時に初期化されていない可能性があるため、以下の方法はJavaでは実行できません。これは構文かセマンティクスの問題ですか?構文またはセマンティクスの問題?

私はそれがセマンティクスだと思っていましたが、私のインストラクターによると、構文エラーです。それは正しいのですが、なぜですか?

+0

:?http://c2.com/cgi/wiki?SyntaxVsSemantics

、これをどちらもあなたの作業コードを取得しません。 – Piskvor

+1

コンパイラの最適化と関係があり、 –

答えて

8

Javaコンパイラでエラーが検出されましたが、ではありません。構文エラーです。 Java文法によれば完全に有効です。解析の後の段階で検出され、意味的なエラーになります。

教師が構文エラーとしてコンパイラエラーを定義したいと思っているようで、おそらく実行時に「セマンティックエラー」が間違っていると思われるように思えます。インストラクターは宿題を評価するので、あなたは彼の定義を受け入れることになります(この場合のように完全に間違っていても)。

+0

のような到達不能なコードが見つかりました。お返事ありがとうございました! – Adeeb

0

Javaには、ローカル変数を宣言するための厳密に定義された構文があります。コードサンプルでは、​​それをフォローしていません。

Javaでは構文エラーになります。

この参照してください:なぜそれは問題ではない、まあhttp://wiki.answers.com/Q/What_are_the_Differences_between_syntax_and_semantic_error

+0

Java構文のどの部分に違反していますか? –

+1

これは私が今まで見てきたc2の* worst *ページでなければなりません。なんてこった! –

+0

@DaveNewton:ローカル変数が正しく定義されていません。 – Azodious