如何在J中“for循环”

时间:2011-02-17 02:41:55

标签: j

我试过但代码不会工作。

for.     T do. B end.
for_xyz. T do. B end.

C#

中的等价物
for(int i = 0; i < 10; i++)
    Console.WriteLine("Hello World!");

Google解决J问题的关键是什么?

2 个答案:

答案 0 :(得分:4)

更多J-ish循环方式是使用Power ^:,这个

f^:10 y

将适用f 10次;首先是y,然后是f(y),...:

f(f(f(f(f(f(f(f(f(f(y))))))))))

因此,如果p是打印函数,例如:p =: (4) 1!:2~ ]

(p^:10) 'Hello World!'
Hello World!Hello World!...

通常,J(在某种程度上)促进无循环代码。如果你真的需要10倍的字符串'Hello World!'例如,您可能会执行以下操作:

10 12 $ 'Hello World!'
Hello World!
Hello World!
Hello World!
...

答案 1 :(得分:2)

the Control Structures section开头所述,这些仅适用于明确定义。冒号是设置这样一个脚本的关键。唯一一次'为'。 (或任何类似的单词)可以出现在由:的正确参数确定的脚本中,即冒号,意为Explicit

在该页面上的控制字for.上使用the link查找完整示例。请注意,这些特殊符号(例如。和end。)通常出现在多行脚本中,这些脚本以单个右侧paren结束。如果您要使用控制字,那么您必须使用这种结构。

以下是记录for.结构的词典页面上给出的第一个示例(http://jsoftware.com/help/dictionary/cfor.htm):

f0=. 3 : 0
 s=. 0
 for. i. y do. s=. >:s end.
)

一旦在这种结构中安排了控制字,它们就会在脚本执行时生效。在此示例中,当动词f0接收一个整数作为其唯一(右)参数(在脚本中称为y)时,它会产生相同的整数。它遍历for循环以达到该数字。