2014-11-30 3 views
0

CLI 산술 퀴즈 프로그램을 만들려고 시도 중이며 메서드 내에서 점수를 유지하는 데 어려움이 있습니다. (선언 된) 점수 변수를 증가 시키려고 할 때마다 다음 오류 메시지가 나타납니다.Ruby : 메서드 내에서 증가시키기

main.rb:17:in `ask': undefined method `+' for nil:NilClass (NoMethodError) 
     from main.rb:23:in `<main>' 

코드는 아래에 붙여 넣습니다. 나는 '증가'를하기 위해 'return'문을 사용해야한다고 믿지만이 방법이 확실하지 않습니다. (이것은 문제가되지 않더라도, 나는 당신이 계산하는 부울 반환 값을 사용하는 방법을 설명하는 누구로부터 도움을 환영 여전히 것입니다.)

def ask(question, answer) 
    print question 
    user_answer = gets.chomp 
    if user_answer == answer 
     puts "Correct!" 
     score += 1 
    else 
     puts "Wrong! The answer was #{answer}" 
    end 
end 

답변

1

귀하의 점수 변수 선언가 없습니다. 당신은 클래스 구현을 보여주지 않았지만, (또는 get과 set var를 원할 경우 attr_accessor :score)을 사용하고 initialize 메소드에 초기 값을 설정하는 것이 좋습니다.

1

메소드 내의 모든 로컬 변수는 메소드 내에서만 볼 수 있습니다. 클래스 변수가 더 잘 보이므로 score에서 @score (메서드 안팎 모두)의 이름을 바꿔야합니다.