繁体   English   中英

为什么Lua中的if-elseif-else语句不起作用?

[英]Why if-elseif-else statement in Lua is not working in function?

我在lua函数中使用elseif有问题。 我在Windows上使用LuaEdit 2010,如果使用第一个代码,该程序将冻结。 第二个可以工作,但是很难看,如果有更多其他情况,也就无法使用。 我认为它在两种情况下都应该起作用,但不能起作用,我也不知道为什么,请帮助我。 Lua Edit似乎未关闭该功能。 该代码不起作用

function read_this()
    char=read_char()
    word=""
    if char=="~" then    word = word..char
                        char=read_char()
                        if char == "+" then      
                               formating=true 
                               word=word..char
                        elseif char == "-" then 
                               formating=false
                               word = word..char 
                        else word = word..char
                        end
                    write(word,file2)
    else    print("something what is not problem")
    end                 
end

这段代码对我有用。

function read_this()
    char=read_char()
    word=""
    if char=="~" then    word = word..char
                        char=read_char()
                        if char == "+" or char == "-" then  
                               if char == "+" then formating=true end
                               if char == "-" then formating=false end
                               word = word..char 
                        else word = word..char
                        end
                    write(word,file2)
    else    print("something what is not problem")
    end                 
end

在我看来,两个示例在功能上都是相同的。 我真的会努力使用换行符,空格和缩进,因为它看起来确实很乱。 你的第一个例子我写成

function read_this()
    char = read_char()
    word = ""
    if char == "~" then
        word = word .. char
        char = read_char()
        if char == "+" then      
            formating = true 
            word = word .. char
        elseif char == "-" then 
            formating = false
            word = word .. char 
        else
            word = word .. char
        end
        write(word,file2)
    else
        print("something what is not problem")
    end                 
end

我还注意到的是,在每种情况下,无论如何您都执行一个word = word .. char ,因此无需将其放在每个if语句中,然后像这样将其放在它之后:

function read_this()
    char = read_char()
    word = ""
    if char == "~" then
        word = word .. char
        char = read_char()
        if char == "+" then      
            formating = true 
        elseif char == "-" then 
            formating = false 
        end
        word = word .. char
        write(word,file2)
    else
        print("something what is not problem")
    end                 
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM