为什么我的Hello World计划失败了?

时间:2011-10-21 16:47:19

标签: loops brainfuck

所以,我在BrainFuck中手写了这个程序:

+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.

它显示我想要的内容:

HELLO WORLD

但后来我希望它连续五次显示HELLO WORLD,所以我把它包裹在一个循环中:

+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
<<<<<<<<<<<-]

我希望它有这个输出:

HELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLD

但它显示了这一点:

HELLO WORLDŠ˜˜ž@®ž¤˜ˆØÏääí`íöäÌ 00<€\<H0hY||‹ ³‹š|T

我的循环错误是什么?为什么不按预期连续五次显示HELLO WORLD

1 个答案:

答案 0 :(得分:6)

你没有循环“HELLO WORLD”,你正在循环创建它的代码......

你有两个选项,当你使用[ - ]&lt;回来时将所有内容都归零,这与当前代码一起使用,因为它会将数组元素返回到初始状态,当你重新运行代码时它将是具有相同的值,即:

http://ideone.com/GjAp8

+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]
<-]

或使用它(不要在填写数据时打印数组,等到它被创建然后再进行)

http://ideone.com/iWs8X

+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++>+>++++++++>+++++++++++>-->++>+++++++++++>++++++++++++++>++++++++>
<<<<<<<<<<
 +++++[>.>.>..>.>.>.>.>.>.>.<<<<<<<<<<-]