2012-12-01 82 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