0

これは基本的にコーディングの問題ではなく、技術的な修正です。英語のフォーラムでこれを質問することはできません。なぜなら、彼らはすべての専門用語を理解していないからです。

これが私が持っているコードです。

1. public class ExamQ1a
2. {
3. public static void main(String[] args)
4. {
5. int x = 27;
6. int y = 5;
7. double z = x / y
8. System.out.println(x = x, y = y, z = z);
9. }
10. }

これは私が尋ねられる質問です

(i) プログラムを BlueJ でコンパイルすると、次のエラー メッセージが表示されます。予想され、7 行目のステートメントが強調表示されます。何が問題で、どのように修正するかを説明します。

これが私が出した答えです

i) 問題は、ステートメントの終わりの指示がないことです。したがって、コンパイラーはステートメント double z = x /y をステートメントの終わりとして扱わず、次の文がステートメントの続きであると想定します。実際にはそうではありません。このエラーの修正は double z = x/y; になります。

技術用語を正しく使用しているかどうかを知りたいのですが、tks

4

2 に答える 2

1

答えは合理的であり、実際に間違っているわけではありません。Java には「文」がないという小さな技術的エラーがあります。

ただし、理想的な回答では、コンパイラがこれを構文エラー、特にセミコロンの欠落と診断した理由について、より正確な理由を含めることができます。

パーサーは、次の一連のシンボルを認識します。

double z = x / y System . out . println 

最初の 2 つのシンボルを宣言子として解析し、'=' を初期化子の開始として解析します。次に、式の解析を試みます。「y」に続いて「System」が表示されるまで、すべてがうまくいきます。基本的に、式の途中で 2 つの識別子を続けて使用することはできません。この時点で有効な記号は、中置演算子記号である「(」、「[」、または「.」です。それ以外は構文エラーです。

コンパイラの作成者は、コンパイラが解析のこの時点で予期しない識別子シンボルを検出した場合、最も可能性の高い説明は、プログラマがステートメントの末尾にあるセミコロンを省略したことであると述べています。この場合、診断は正しいです。問題はセミコロンがないことです。

于 2012-11-14T10:22:30.417 に答える
0

following line代わりに単語を使用することを除いて、私には問題ないように見えますfollowing sentence

于 2012-11-14T09:33:14.727 に答える