我刚刚发现了一种名为Brainfuck的编程语言。如何在Brainfuck中编写if else语句
我的问题是如何在Brainfuck中编写if-else语句?
它是通过比较两个单元完成的吗?如果是的话,那我该如何比较这个程序中的两个单元呢?
谢谢
我刚刚发现了一种名为Brainfuck的编程语言。如何在Brainfuck中编写if else语句
我的问题是如何在Brainfuck中编写if-else语句?
它是通过比较两个单元完成的吗?如果是的话,那我该如何比较这个程序中的两个单元呢?
谢谢
你需要一个[x,1]的结构,其中x可以是0或别的东西。解释它的最简单的方法是创建一个循环,你知道指针不会结束它开始的循环。
让我们说这些细胞被命名为小区1和小区2
你做改变小区1和小区2的值不会改变的值的操作。
处理完值后,让指针指向cell1,然后执行替代操作。
[-]> cell1 = 0
[-]+ cell2 = 1
|manipulations that change cell1 value
|goto to cell1
[ // if cell1 != 0
[-]>[-] // both cell1 and cell2 now equal 0
if you want the loop to end and want to prevent the
next loop from starting
|do something
|goto cell1 // Make sure you point again to cell1 to exit the loop
]>[ // else
|do something else
|goto cell1 // Make sure you point again to cell1 to exit the loop
]
在这个例子中,我使用//标记cooments并使用|以标记操作 丢失指针是最大的敌人,所以它可能有助于分离您的代码并发表一些评论。
所以落得回答你的问题:不,你不比较两个单元格,你做的操作,要么结果0或别的东西,然后你检查,如果该单元格== 0
的操作你可以比较两个单元格,但你必须使自己的序列这么做
下面是brainfuck在这里你可以看到很多简单和复杂的算法Brainfuck的维基百科页面,并欢迎社区:)
https://esolangs.org/wiki/Brainfuck_algorithms#if_.28x.29_.7B_code1_.7D_else_.7B_code2_.7D
这似乎是一个令人难以置信的基本问题;那么,你认为这是一种非常棒的语言吗? –
https://stackoverflow.com/questions/6168584/brainfuck-compare-2-numbers-as-greater-than-or-less-than/13327857#13327857 –