2016-08-08 6 views
0

私はifelseelse ifステートメントを持っていますが、私はRubyの公式文書を使用していますが、私はendステートメントをどこに置くべきか分かりません。ここでRubyの "e​​nd"ステートメント

コードです:

class Menu 
    def principal_menu 
    user_input = gets 
    #On supprime le \n du retour à la ligne 
    user_input = user_input.chomp 
    if user_input == "3" 
     exit 
    else if user_input == "1" 
     if File.exists?("accounts.txt") 
    else 
     File::new("accounts.txt","w+") 
    end 

    else if user_input == "2" 
     new_account = account.new 
    end 
    end 
end 

エラーは次のとおりです。AccountManager.rb:63: syntax error, unexpected end-of-input, expecting keyword_end

注:ライン63は、ファイルの一番最後です。

いくつかのいずれかが、Rubyで初心者を助けてもらえ:D

ありがとう!

+3

、 '他if'は' elsif'です。 – orde

+4

ここにProTipがあります:コードを正しくインデントしてください。さらに、自動的に再フォーマットされたエディタを使用してください。コードが適切にフォーマットされていると、多くの構文エラーが非常に顕著になります。 –

+0

_Not_デフォルトで何も起こりたくない場合。 @CarySwoveland – Charles

答えて

2

はここにあなたの問題です:Rubyで

class Menu 
    def principal_menu 
     user_input = gets 
     #On supprime le \n du retour à la ligne 
     user_input = user_input.chomp 
     if user_input == "3" 
      exit 
     else if user_input == "1" 
      if File.exists?("accounts.txt") 
       # you aren't doing anything here 
      else 
       File::new("accounts.txt","w+") 
      end 
     else if user_input == "2" 
      new_account = account.new 
     end 
    end 
end 

、あなたの代わりにelse ifelsif使用します。これは、新しいRubyの人々を傷つける可能性があります。

これは正しいです:Rubyで

class Menu 
    def principal_menu 
     user_input = gets 
     #On supprime le \n du retour à la ligne 
     user_input = user_input.chomp 
     if user_input == "3" 
      exit 
     elsif user_input == "1" 
      if File.exists?("accounts.txt") 

      else 
       File::new("accounts.txt","w+") 
      end 

     else user_input == "2" 
      new_account = account.new 
     end 
    end 
end 
関連する問題