Hello everyone!
I’m trying to make a little grocery list to practice. My intention is to
make basically an array that you can add to, remove and display items.
My problem starts when after a person adds an item to the array for
example and the options come up again, instead of going back into the
cases the program just quits.
It kinda is like a loop where it keeps going around and around… my
program just doesn’t wanna do that.
Could someone explain where I went wrong with my codes?
list = Array.new(0)
display_proc = Proc.new {|x| puts x}
puts “What would you like to do with your shopping list?”
def opening_options
puts
puts “–ADD”
puts “–REMOVE”
puts “–CLEAR”
puts “–DISPLAY”
puts “–EXIT”
@options = gets.chomp.downcase
end
opening_options
case @options
when “add”
puts “What item would you like to add?”
add = gets.chomp
list << add unless list.include?(add)
opening_options
when “remove”
puts “What item would you like to remove?”
list.each(&display_proc)
remove = gets.chomp
list.delete(remove)
opening_options
when “clear”
puts “Are you sure you want to delete every item from your list?”
puts “–YES/NO”
clear = gets.chomp.downcase
case clear
when “yes” || “y”
list.delete_if {true}
opening_options
when “no” || “n”
opening_options
else “ERROR! Unknown command!”
end
when “display”
list.each(&display_proc)
opening_options
when “exit”
system(‘quit’)
else “ERROR! Unknown command!”
end