私はこの件に関してたくさんの質問をしましたが、私はまだ以下が意味論的なものか論理的なものかを知ることができませんでした。
は、私は次のJavaコードを持って言う:意味または論理エラー?
boolean a = false;
if (a = false) System.out.println("yes");
else System.out.println("no");
あなたはすでに私はおそらく==
代わりの=
を書き留めたいと思っ見るかもしれないが、:プログラムがうまくコンパイルし、エラーなしで実行されます。しかし、意図した結果が得られません。
私は、意味論的なエラーがいつも(コンパイル時または実行時に)エラーを起こしていることがわかりました。したがって、これは論理エラーでなければなりません。しかし、別のテキストによると、意味エラーは必ずしもエラーを出すとは限りません。したがって、疑問があります:上記の例は意味論的または論理的なエラーを含んでいますか?
これらは同じものではありませんか?私がこれらの用語について読んだところでは、両方の定義は、プログラムが構文的に有効である(つまり有効なプログラムです)が、プログラマーが意図したことをしないということです。 –
@ LasseV.Karlsen私は最初、同じことを考えましたが、それは事実ではありません。また、例えば、 'a'が' String'であった場合、これはセマンティックエラーとみなされます。 – SWdV
@ LasseV.Karlsen(私が理解する限り、これは_pattern_が正しいため、状況(変数型)はありません)。 – SWdV