2013-08-04 1 views
0

저는 Ruby를 처음 사용하고 5 살짜리 아들을 위해 프로그램을 만들려고합니다. 나는 철자법에 철자법을 쓰는 방법을 물어보고 싶다. (화면이 아닌 직접) 철자를 루비에 입력하고 대답이 맞으면 '잘 했어!'라고 적는다. 다시 실행합니다. 부정확하면 '다시 시도하십시오!' 다시 실행합니다. 여기"if"테스트 주위에 루프를 작성하려면 어떻게합니까?

내가 한 단어와 함께 온 것입니다 :

puts 'How do you spell?..' 
spell = gets.chomp 
if spell =='disappointed' 
puts 'Well Done!' 
elsif spell != 'disappointed' 
puts 'try again!' 
end 

내 질문

은 다음과 같습니다

  1. 는 어떻게하면 다시 실행하기 위해 어떻게해야합니까? 옳고 그름을 막론하고 루프를 설정해야합니까? 그렇다면 그가 다시 돌아 가지 않고 대답 할 수 있도록 시작으로 돌아가는 가장 쉬운 방법은 무엇입니까? 분명히 end을 넣지는 않을 것입니다.하지만 '예상치 못한 $ end, kEND'이라는 메시지가 나타납니다.
  2. 더 많은 단어를 추가하고 싶다면 가장 좋은 방법은 무엇입니까?

    if spell =='disappointed' || 'knowledge' (etc) 
    puts 'Well Done!' 
    elsif spell != 'disappointed'|| 'knowledge' (etc) 
        puts 'try again!' 
    end 
    

답변

0

당신은 루비에서 While 루프를 살펴 보셔야합니다. http://www.ruby-doc.org/docs/Tutorial/part_02/while.html

+0

감사 Hrishi, 나는 루프에 대해 조금 알고, 그래서 내가 '프로그램'내가 쓴 전후 루프를 넣어 같은데요? –

+0

예. 그것은 기본적으로'code'이고 true end'code' – Hrishi

2

쉽게 업데이트, 나는 배열에 올바른 단어를 넣어 권하고 싶습니다 : 당신이 단어를 많이있는 경우

words = %w{disappointed knowledge} 

당신은, 너무, 별도의 줄에 단어를 넣을 수 있습니다. else 당신이 원하는 어떤 가능한 모든 다른 조건을 커버 - 나는 else보다는 elsif을 사용했습니다

if words.include? spell 
    # ... 
else 
    # ... 
end 

참고 : 입력 한 단어가 목록에있는 경우

당신은 확인할 수 있습니다. elsif도 작동하지만 필요없는 경우 조건을 반복해야하는 이유는 무엇입니까? 여러 번 일에 관해서는

, loop 사용

loop do 
    # ... 
end 
+0

감사합니다. 왜 이것이 작동하지 않는지 조언 해 줄 수 있습니까? {실망 지식} 루프 w = % 단어 을두고 할 "당신은 어떻게 철자 ..." 단어 = gets.chomp words.include 경우? 철자 '잘 했어!' else puts '다시 시도하십시오!' end –

+0

@ Jason : 'if'에는 'end'가 있지만 'loop'에는 'end'가 없습니다. – icktoofay

관련 문제