每个循环都有意外的keyword_end

时间:2014-10-17 11:49:13

标签: ruby

我收到unexpected keyword_end错误,我不知道原因:

def add(meeting)
    if conflict?(meeting)
        puts "There's conflict with another meeting!"
    else
        if @meetings.empty?
            @meetings.push(meeting)
        else
            i = 0
            @meetings.each do |m|
                if m > meeting
                    @meetings.insert(i, meeting)
                    break
                end
                i++
            end
        end
    end
end

如果删除each循环,则没有问题。我尝试使用while循环和until循环,但我在所有循环中都遇到了同样的错误。

有人可以解释我做错了吗?

2 个答案:

答案 0 :(得分:3)

Ruby中没有一元运算符++。你应该:

i += 1

答案 1 :(得分:1)

在第14行中,您添加了两个数字,但是您忘记传递第二个数字,而解析器遇到了end。因此,错误消息有点误导:并不是解析器不会期望end,而是希望在<{em> {{>}之前看到 1}}。