2014-11-08 6 views
0

내 코드에는 해시 값이 0이고, 코드를 실행 한 후 "1"을 표시하고 싶습니다. 그러나 0 만 표시합니다. 아무도 도와 줄 수 없으며 설명해주십시오. 오류 및 작동하지 않는 이유.해시에 숫자를 추가하려면 어떻게해야합니까?

puts "Hello!, and welcome to the 'Coin Calculator V1.0', please enter a value." 

    coin_value = gets.to_i 
    coin_num = {"quarters" => 0,"dimes" => 0,"nickels" => 0,"pennies" => 0} 

    if coin_value>25 
    coin_value-25 
    coin_num["quarters"]+1 // **basically, how do I add an integer value to the old integer? 
    puts coin_num["quarters"] 

end 
+= 연산자 (추가 지정)를 사용하여 단축 할 수
+0

구문 공행 설탕'coin_num [ "quarters"] + = 1'을 사용하여'coin_num [ "quarter"] = coin_num [ "quarter"] +1을 수행하십시오. –

답변

2
coin_num["quarters"] = coin_num["quarters"] + 1 

: 당신의 산술 식의 어느

coin_num["quarters"] += 1 
+0

정말 고마워요! 나는 묻기 위해 정말로 아프다고 느낀다. –

0

아무것도 변경됩니다.

coin_value - 25 

이 값은 coin_value보다 작습니다. 당신이 그것을 인쇄하거나 어딘가에 지정했다면, 당신은 그것을 볼 것입니다. 그러나 당신이 가치를 가지고 아무것도하지 않기 때문에, 그것은 버림 받고 아무 일도 일어나지 않습니다. 물론 coin_value은 변경되지 않습니다.

마찬가지로

,

coin_num["quarters"] + 1 

coin_num["quarters"]의 현재 값보다 하나로 평가하지만, 아무것도 변경되지 않습니다.

당신이 변수의 값을 변경하려면

- 어떤 변수를 coin_value 같은 간단한 스칼라 또는 해시 또는 배열의 요소 여부 - 당신이 할당 문을 사용해야합니다. 당신은 =해야하고, 변경하고자하는 변수는 =의 왼쪽에 있어야한다 :

coin_value = coin_value - 25 
coin_num['quarters'] = coin_num['quarters'] + 1 

루비 같은 변수의 이전 값을 포함하는 간단한 표현을 사용하여 변수를 수정하기위한 속기 연산자를 정의하지 않습니다 :

coin_value -= 25 
coin_num['quarters'] += 1 

그러나 당신은 여전히 ​​=을 사용하고 - 지금 복합 할당 연산자의 한 부분입니다.

관련 문제