To create programs that are user friendly and interactive, you’ll need to know how to output data to a screen and how to get input from a user. In this lesson, we’ll cover the most common ways to achieve these tasks in Ruby. As with other lessons, and this one in particular, following along in irb or a REPL will be helpful.
By the end of this lesson, you should be able to do the following:
To output information, such as into your irb or REPL environment or into the command line, we can use the
irb(main):001:0> print "Learning to code is FUN!" Learning to code is FUN!=> nil irb(main):002:0> print "1234" 1234=> nil
We can also use the
irb(main):001:0> puts "Learning to code is cool!!" Learning to code is cool!! => nil irb(main):002:0> puts "Hey, I want 2 key lime pies." Hey, I want 2 key lime pies. => nil irb(main):003:0> x = "My name is ALEX! :)" => "My name is ALEX! :)" irb(main):004:0> puts x My name is ALEX! :) => nil
As you can see, the
puts appends a new line to the argument passed in, whereas
To highlight the difference between
irb(main):001:0> print "Hello World"; print "I love drinking coffee" Hello WorldI love drinking coffee=> nil irb(main):002:0> puts "Hello World"; puts "I love drinking coffee" Hello World I love drinking coffee => nil
To accept input from a user, we can use the
gets command. When we use
gets, program execution will stop and wait for user input. After the user presses
Enter, the program will continue its execution.
Let’s give this a go. Open irb, type
gets, and then type
The Odin Project. You should see something like the following:
irb(main):001:0> gets The Odin Project => "The Odin Project\n"
How about that? Let’s break this process down a bit.
You’ll notice that, unlike
gets actually returns the user input instead of returning
nil. This means that the input can be assigned to a variable for you to then use and manipulate and twist and turn and spit back out.
As you might also remember from the String section of the Basic Data Types lesson,
"\n" is an escape character that represents a new line. The
gets command always returns a new line at the end of the input. This command often makes use of a “separator” to read streams and multi-line files, but that’s beyond the scope of this beginner lesson. For now, it’s helpful to know that
#chomp is a method commonly used to trim separators.
irb(main):001:0> new_string = gets.chomp This is a sentence. => "This is a sentence." irb(main):002:0> puts new_string This is a sentence. => nil
This section contains questions for you to check your understanding of this lesson. If you’re having trouble answering the questions below on your own, review the material above to find the answer.