2013-07-01 2 views
0

아래 루비 코드가 예상대로 작동하지 않습니다. 1..3 범위를 인식하지 못하고 else 조건 만 읽는 중입니다. 범위 대신 번호를 부여하면 작동합니다. 내가 어디로 잘못 가고 있는지 확실하지 않습니다.입력 문자열이 숫자 범위와 일치하지 않습니다.

print "Enter your cost: " 
cost = gets.chomp 
case cost 
when 1..3 
puts "inexpensive" 
when 3..5 
puts "affordable" 
else puts "no comments" 
end 
+0

'예상대로 작동하지 않습니다. '=> 무엇을 기대합니까? – sawa

답변

0

gets에서받는 입력은 항상 문자열이므로 숫자 범위와 일치하지 않습니다. 정수로 변환하려면 다음을 수행하십시오

cost = gets.to_i 

당신은 직접 당신은 정수 범위에 대해 문자열을 일치하도록 노력하고 그래서

case gets.to_i 
+0

고마워요! 나는 그렇게 추측하고 있었다. 그것을 정수로 변환 할 수있는 방법이 있습니까? 정수 (비용) 방법을 시도했지만 작동하지 않습니다. 내가 말할 수 있을까요? 정수 [비용] 1..3 – sasi

+0

'정수 (비용)'는 여분의 문자를 포함하지 않는 한 작동해야합니다. 'String # to_i'는보다 유연하며이 경우 적합합니다. – sawa

1

같은 경우 문을 넣을 수 있습니다. 그게 효과가 없을거야. 정수를 만드십시오.

cost = gets.chomp.to_i 
+0

정말 고마워요! 나는 오랫동안 그걸로 고투 해왔다 - 나는 코딩에 새로운 사람이다. – sasi