Rubyで凡ミス

RubyRubyで凡ミス。if文の構文終わりのend にifをつけても次段(行)になにか値を返すものがあればエラーが出ない。末尾ifが条件式(print 3)として値はnilで解釈されて、前段のif文すべてが実行されない。end ifとしてしまうのがそのそもの間違いだが、then以下もelse以下も実行されないので30分くらい悩んだ。例文は短くて見通しがいいが、実際はthen~else~end部分が長かったので、末尾にifをつけていたのに全然気が付かなかった。また例文の(print 3)のところが普通の式(ex. x = x + 1)だと通ってしまうことがあるので困りもの。その場合(x = x + 1)部分が先に実行されるので、ますます挙動がわからなくなる。
if a==1 then
    print 1
else
    print 2
end if
print 3