2012-12-01 136 views
2

有人可以好心解釋J中的控制結構(特別是For和While循環)嗎? 假設我有a =:1和b =:10,並且我想使用For/While循環將'1'加到'a'直到< b。J編程初學者循環

所以,通常它會是這樣的(其他語言)

for i= 1 to b 
a=a+1  
next i 

while a<=b  
a=a+1  
end 

請幫助。我知道這很簡單,但我無法弄清楚如何在循環中做到這一點。

此外,我讀了一些名爲「表達式」的內容。例如:

foo=: 3 : 0 
if. 1 do. wdinfo 'success' end. 
) 

3和0表示什麼?

+3

那麼,這是一個帖子很多問題。您是否閱讀過「針對C程序員的J」中的「Loopless代碼」(http://www.jsoftware.com/help/jforc/loopless_code_i_verbs_have_r.htm#_Toc191734331)? – Eelvex

回答

4

Control structures必須在explicit definition之內使用。 顯式定義鏈接​​將解釋「3」和「0」的含義,但請注意以下內容是等同的。

myfunction=: 3 : 0 
    NB. define function/verb here 
) 

myfunction=: verb define 
    NB. define function/verb here 
) 

這裏是限定包含一個for循環的顯函數/動詞的一個示例:

for_eg=: verb define 
a=. 3 
b=. 8 
for. i.b do. 
    a=. a + 1 
end. 
a 
) 

在這裏是使用動詞的一個示例:

for_eg '' 
11 

的Jwiki包含wiki page描述如何定義一個動詞。請注意底部的參考資料以獲取更多信息。

+0

對不起,對於這個遲到的回覆。一直很忙。非常感謝Tikkanz。你的回答很貼切,真正幫助我理解我需要什麼。特別提到:你提供的鏈接真的很有用。 – babsdoc