2016-06-09 52 views
2

我試圖在我的代碼上使用其他語句,但我無法弄清楚正確的sintaxe。 Wheres錯誤呢?如果我評論'Else'行代碼編譯就好了。帕斯卡,不能讓其他作品(起動器)

Procedure im_dumb; 
begin 
If (1 > 2) Then 
begin 
AddToDebugJournal('if'); 
end; 

else 

begin 
AddToDebugJournal('else'); 
end; 
end. 


Program New; 
begin 
im_dumb; 
end. 
+1

沒有分號。 –

+0

這裏有一個[tutorial here](http://stackoverflow.com/q/28221394/62576)關於使用'begin..end'(包括'else')的幫助。你的代碼非常糟糕我建議你仔細閱讀該教程。 –

+1

如果發佈的示例不是您的原始代碼,則它不屬於此處。除非您發佈**代碼**,否則不要要求我們調試代碼的問題。爲你的問題編寫BS代碼可以改變或隱藏實際的問題(這是你在這裏發佈的垃圾的作用),這既浪費了我們的時間,也浪費了你的時間。有關您的代碼的問題需要**您的代碼**。請將來牢記這一點;如果你不這樣做,你可能會在這裏結束很短的未來。 –

回答

2

不要在「else」之前加分號。這是帕斯卡減輕懸空的方式。

2

在帕斯卡的邏輯,分號分隔「語句」,而它終止他們C.

爲如果 - 則 - 否則構建體的語法是

if expression then instruction [ else instruction ] 

所以沒有半冒號應該出現在else之前。

之前`else`請參閱你最喜歡的語法鐵路圖http://pascal-central.com/images/pascalposter.jpg

+0

謝謝你,在我從前面的'結束'中刪除了半collon後,我的代碼正常工作:) – niceguy335

+0

分隔符參數並不能解釋爲什麼before else是唯一具有特殊含義的地方。與例如最後的聲明在結束之前。 –

+0

好吧,分號從下面的(預期的)指令中分離出「if condition then instruction1」部分,這是一個完全有效的指令。而「else instruction2」不是一個有效的指令。 –