2012-11-14 174 views
1

這基本上不是一個編碼問題,但是如果你願意的話,這是一個技術性的更正。我不能在英語論壇上提出這個問題,因爲他們不會理解所有的技術術語。正確解釋技術術語

所以這是我的代碼。

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)的問題是沒有任何跡象的語句結尾的答案, 因此編譯器不會把語句雙Z = X/Y作爲 聲明的結尾,然後假設以下句子是 聲明的延續。事實上並非如此。修復 這個錯誤將會是雙倍的z = x/y;

所以想知道有沒有正確使用的技術術語,TKS

+0

我相信測試的作者也在尋找術語「編譯時錯誤」。 – amit

+0

技術術語正確,但我認爲你仍然可以解釋更多細節 –

+0

你的回答是正確的,但如果這個問題是部分你的t你可以等待,直到結果出來,然後檢查你自己。如果您有任何值得分享的信息(技術上發現的東西,可以進一步研究的東西,或者如果您需要某些代碼的幫助,但您無法修復)。 – Galaxin

回答

0

它看起來好像沒什麼問題,除了我會使用的話following line代替following sentence

1

答案是合理的,當然不是事實上不正確的。有一個小小的技術錯誤,因爲Java沒有「句子」。

但是,在一個理想的答案中,您可能包含一個更精確的推理,說明爲什麼編譯器將此診斷爲語法錯誤,特別是缺少分號。

解析器看到符號的順序如下:

double z = x/y System . out . println 

它分析前兩個符號作爲說明符,和在「=」作爲初始的開始。然後它嘗試解析表達式。一切都很好,直到看到'y'後面跟'系統'。基本上,在表達式的中間不能有兩個標識符。在這一點上合法的符號是中綴運算符符號,'(',a'['或a'。',任何其他都是語法錯誤

編譯器編寫者已經調用if編譯器在解析的這一點看到一個意外的標識符符號,最有可能的解釋是程序員在語句結尾處留下了分號,這種情況下,診斷是正確的 - 問題是缺少的分號