所以,我在BrainFuck手写了这个程序:
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
Run Code Online (Sandbox Code Playgroud)
它显示我想要的东西:
HELLO WORLD
Run Code Online (Sandbox Code Playgroud)
但后来我希望它HELLO WORLD连续显示五次,所以我将它包装成一个循环:
+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
<<<<<<<<<<<-]
Run Code Online (Sandbox Code Playgroud)
我希望它有这个输出:
HELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLDHELLO WORLD
Run Code Online (Sandbox Code Playgroud)
但它显示了这个:
HELLO WORLDŠ˜˜ž@®ž¤˜ˆØÏääí`íöäÌ 00<€\<H0hY||‹ ³‹š|T
Run Code Online (Sandbox Code Playgroud)
我的循环怎么办?为什么它没有HELLO WORLD像预期的那样连续五次显示?
你没有循环"HELLO WORLD",你正在循环创建它的代码......
你有两个选项,当你使用[ - ] <向前移动时将其全部归零,这与当前代码一起使用,因为它会将数组元素返回到初始状态,当你重新运行代码时,它将具有相同的值,即:
+++++[>
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++.>+.>++++++++..>+++++++++++.>--.>++.>+++++++++++.>++++++++++++++.>++++++++.>.
[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]
<-]
Run Code Online (Sandbox Code Playgroud)
或者使用它(不要在填充数据时打印数组,等到它被创建然后再执行)
+++++++++++++++++[>++++>++++>++++>++++>++>+++++>++++>++++>++++>++++<<<<<<<<<<-]
>++++>+>++++++++>+++++++++++>-->++>+++++++++++>++++++++++++++>++++++++>
<<<<<<<<<<
+++++[>.>.>..>.>.>.>.>.>.>.<<<<<<<<<<-]
Run Code Online (Sandbox Code Playgroud)