2014-03-05 2 views
1

Ruby에 관해서는 진짜 Newb이지만 코드 아카데미 웹 사이트를 사용하여 학습했습니다.Ruby Control Flow = (같음) 및 경우

print "please type in an integer for x:" 
x = gets.to_i 

print "please type in an integer for y:" 
y = gets.to_i 

if "x" < "y" 
    puts "#{x} is less than #{y}" 
elsif "x" > "y" 
    puts "#{x} is greater than #{y}" 
else 
    puts "#{x} is equal to #{y}" 
end 

그것은 정말 간단한 코드는하지만 최종 결과가 예상되는 : 나는 다음과 같은 코드를 입력 할 때 나는 오류를 가지고에만 놀랍게도, 내가 일을 할했는데 특정 작업에 대한 가이드 라인을 외부에 다니기 시작

"x" < "y" will report "x is less than y" 
"x" > "y" will report "x is greater than y" 
"x" = "y" will report "x is equal to y" 

작은 더 큰 일을 모두하지만, x와 y는 대신

내가 만약 확실하지 않다 "X가 Y보다 찌꺼기이다"보고 같은 경우는 계산할 수 없습니다 :이 작업을 수행하는 코드 아카데미 웹 사이트의 버그이거나 내가 잘못하고있는 것일 경우. 어떤 도움이라도 대단히 감사하겠습니다. 아래

+3

if 절에 변수 이름을 따옴표로 묶을 필요가 없습니다. –

답변

2

쓰기 :

if x < y 
    puts "#{x} is less than #{y}" 
elsif x > y 
    puts "#{x} is greater than #{y}" 
else 
    puts "#{x} is equal to #{y}" 
end 

"x" 새로운 문자열을 만들고 콘솔에서했다 숫자로 간주되지 않습니다. 그러나 당신이 쓸 때 "#{x}", 그것은 숫자를주고 있지만 보간을 사용하여 문자열 형식입니다. 당신이 "x" > "y"을 작성하면

, 확인하려는은/lexicographical ordering하지만 x > y 그들의하여 이러한 문자열 리터럴 'X'와 'y'를 테스트하면 gets.to_i를 사용하여 콘솔에서 찍은 두 숫자의 비교입니다.

+0

아, 고마워요. 나는 루비의 기본 규칙을 잊어 버린 것처럼 내가 노인이라는 것을 알고 있었다. 나는 너에게 박수를 보낸다. 그리고 나는이 질문을 어리석은 실수로 삭제할 것입니다. – LewisHarris

+0

죄송합니다. 나는이 같은 온라인 포럼에서 더 좋았 더라면 좋겠지 만, 불행히도 이런 일을 다른 사람들처럼 심각하게 생각하지는 않습니다. 네, 저는 당신에 대해 이야기하고 있습니다. – LewisHarris

+0

@LewisHarris 무슨 뜻이야 * 네 내가 너에 대해서 말하는거야? –