所以,我在BrainFuck中手写了这个程序:
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
它显示我想要的内容:
HELLO WORLD
但后来我希望它连续五次显示HELLO WORLD
,所以我把它包裹在一个循环中:
+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
<<<<<<<<<<<-]
我希望它有这个输出:
HELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLD
但它显示了这一点:
HELLO WORLDŠ˜˜ž@®ž¤˜ˆØÏääí`íöäÌ 00<€\<H0hY||‹ ³‹š|T
我的循环错误是什么?为什么不按预期连续五次显示HELLO WORLD
?
答案 0 :(得分:6)
你没有循环“HELLO WORLD”,你正在循环创建它的代码......
你有两个选项,当你使用[ - ]&lt;回来时将所有内容都归零,这与当前代码一起使用,因为它会将数组元素返回到初始状态,当你重新运行代码时它将是具有相同的值,即:
+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]
<-]
或使用它(不要在填写数据时打印数组,等到它被创建然后再进行)
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++>+>++++++++>+++++++++++>-->++>+++++++++++>++++++++++++++>++++++++>
<<<<<<<<<<
+++++[>.>.>..>.>.>.>.>.>.>.<<<<<<<<<<-]