2014-09-18 7 views
0

Простая программа CLI. Я беру информацию от пользователей об ингредиентах, пока пользователь ничего не вводит. Присоединение всех ингредиентов запятой и возвращение.синтаксическая ошибка, неожиданный конец ввода, ожидающий ключевого слова ruby ​​

ingredient = [] 
int i = 0 
ingredients = "" 

puts "Enter ingredients :" 

loop do 
puts "Ingredient #{i+1}" 
ingredient[i] = gets.chomp 
break if ingredient[i] = "" 
i++ 
end 

ingredients = ingredient.join "," 

puts ingredients 

Я не знаю, что случилось с этим, но я получаю ошибку «ошибка синтаксиса, неожиданный вход с истекшим, ожидая keyword_end». Пожалуйста помоги.

+4

'int i = 0' - вы имеете в виду' i = 0'? – August

+0

Да. Виноват. – anmolagrawal

+1

С привычками умирают, не так ли? – tadman

ответ

0
ingredient = [] 
i = 0 # No int 
ingredients = "" 

puts "Enter ingredients :" 

loop do 
    puts "Ingredient #{i+1}" 
    ingredient[i] = gets.chomp 
    break if ingredient[i] == "" # == in comparison 
    i+=1 # NOT i++ 
end 

ingredients = ingredient.join "," 
puts ingredients 
+0

Я пробовал это. Теперь он не показывает никаких ошибок, но он неправильно запускает цикл. Как только он принимает первый вход, он выходит из цикла. Какие-либо предложения? – anmolagrawal

+0

@anmolagrawal, я обновил ответ. Теперь он работает нормально. – shweta

+0

Спасибо, это сработало. Единственная проблема заключалась в том, что когда вы вводите последний ингредиент как пустой, и он выходит из цикла, он по-прежнему помещает запятую в конец строки, и я этого не хотел. Поэтому я ввел 'component.reject! (&: Empty?)' Непосредственно перед операцией join для удаления пустых элементов в массиве. – anmolagrawal

Смежные вопросы