2013-09-08 4 views
1

Я написал этот код, но он не работает. Я бы очень признателен за помощь:простой, если еще единица измерения единицы измерения

puts "Welcome to my unit conversion calculator. This calculator can convert 
    between Centimeters and Inches. If you could like to convert Centimeters to Inches,  
    write: in. If you would like to convert Inches to centimeters, write: cm." 

unit = gets 

puts " how many of your unit would you like to convert" 

a = 0.39370079 

b = 2.54 

unit_number = gets.to_f 

if unit = cm 

    (unit_number * a) 

else unit = in 

    (unit_number * b) 
end 
+0

Какой язык программирования вы используете, и вы можете показать мне Типы переменных –

+0

'elsif' вместо' else' из-за второго условия 'блока = в' – ekremkaraca

ответ

1

заявление if не делает то, что вы хотите. Чтобы проверить равенство, используйте ==. = является назначение

if unit == cm 

, но вы действительно хотите 'cm', так как это строка. Вы должны обернуть его в кавычки, чтобы позволить исполняющую знаю, что вы имели в виду строку:

if unit == 'cm' 

и, наконец, вам нужно выводить обратно пользователю, что конверсия была

puts unit_number * a 

или даже лучше

result = unit_number * a 
puts "converting #{unit_number} to #{unit} is #{result}" 
+0

спасибо. Я сделал изменения, но он всегда умножает unit_number на a (который равен 2,54), я ли вставляю cm или in. – user2759592

+0

Извините, я имею в виду переменную b – user2759592

+0

, мой код выглядит так: puts «Добро пожаловать в калькулятор единиц измерения. между сантиметрами и дюймами. Если вы хотите конвертировать сантиметры в дюймы, напишите: in. Если вы хотите конвертировать дюймы в сантиметры, напишите: cm. " единица = получает пут «сколько из вашего устройства вы бы хотели, чтобы преобразовать» unit_number = gets.to_f а = 0.39370079 б = 2,54 , если блок == «в» ставит «ваше преобразование : # {(unit_number * a)} " else unit == 'cm' ставит" ваше преобразование: # {(unit_number * b)} " end – user2759592