我刚刚开始学习脑力,我只是在你好世界的例子。我有一个问题是方括号用于什么?
示例:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
这是“hello world”节目。我不明白为什么有[]我理解-
和+
但我在某处读到括号括号:
[ (opening square bracket)
while(mem[ptr]) {
] (closing square bracket)
}
但即使我有这些信息,我也不明白为什么会有这个。
我能说流利的php / C / POSIX / java但是我不明白这一点。
答案 0 :(得分:1)
每个[
必须与另一个]
所以总是成对地想到它们。以下是你如何推理它们的方法。当程序遇到]
时,它会检查当前单元格。如果单元格中的数字大于0,程序将返回匹配的[
。如果当前单元格中有0,则程序继续。
[和]是一种制作循环的方法。
这是一个简单的例子:+++[-]
这个程序首先将当前单元格设置为3然后将其清除(您将经常遇到部件[-]
,这是用于设置单元格的部分到0,无论其原始值是多少)。然后它遇到第一个[
并忽略它(你可以把它想象成一个标记)。然后它执行-
,第一个单元格现在变为2.之后它遇到]
。当前单元格中有2个,所以由于2大于0,程序会跳回[
。它再执行两次,直到单元格中的值变为0.当单元格中有0并且程序再次遇到]
时,它会看到当前单元格中有0,所以不要跳到[
它让程序继续向右移动(因为这个程序在]
之后没有更多的指令,这意味着这个小程序将会结束)