You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Brainfuck中判断用户输入是否等于指定值?

问题:Brainfuck循环输入程序调试

我正在编写一个Brainfuck程序(纯粹自我挑战,清楚已有现成实现),功能是每次循环接收两个用户输入:一个为字母/数字,另一个用于判断是否结束输入(y/n),之后打印整个输入的字符串。目前代码并不完善,大致逻辑是启动循环后将指针右移两位(使开头有可识别的0值),请求两次输入,将下一个值设为小写n,现在正尝试解决值的比较问题。尝试打印值,但仅在两次输入后才会打印,随后程序崩溃。

当前Brainfuck代码

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

自制Brainfuck解释器(Python)

def brainfuck(code):
    array = [0]
    pointer = 0
    i = 0
    while(i < len(code)):
        if(code[i] == '<'):
            if(i != 0):
                if(pointer != 0):
                    pointer -= 1
        elif(code[i] == '>'):
            pointer += 1
            if(len(array) <= pointer):
                array.append(0)
        elif(code[i] == '+'):
            array[pointer] += 1
        elif(code[i] == '-'):
            if(array[pointer] > 0):
                array[pointer] -= 1
        elif(code[i] == '.'):
            print(pointer,chr(array[pointer]))
        elif(code[i] == ','):
            x = input('Input:')
            try:
                array[pointer] = int(x)
            except ValueError:
                array[pointer] = ord(x)
        elif(code[i] == '['):
            if(array[pointer] == 0):
                openBraces = 1
                while(openBraces > 0):
                    i += 1
                    if(code[i] == '['):
                        openBraces += 1
                    elif(code[i] == ']'):
                        openBraces -= 1
        elif(code[i] == ']'):
            openBraces = 1
            while(openBraces > 0):
                i -= 1
                if(code[i] == '['):
                    openBraces -= 1
                elif(code[i] == ']'):
                    openBraces += 1
            i -= 1
        i += 1

内容的提问来源于stack exchange,提问作者jjToad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:21:01