Input and Output
All applications are fundamentally based on input and output.
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:
- Differentiate between the
- Describe the method used to get input from the user.
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"
We can also use the
irb(main):001:0> puts "Learning to code is cool!!"
Learning to code is cool!!
irb(main):002:0> puts "Hey, I want 2 key lime pies."
Hey, I want 2 key lime pies.
irb(main):003:0> x = "My name is ALEX! :)"
=> "My name is ALEX! :)"
irb(main):004:0> puts x
My name is ALEX! :)
As you can see, the
putsappends 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"
I love drinking coffee
To accept input from a user, we can use the
getscommand. 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
Satoshi Nakamoto. You should see something like the following:
=> "Satoshi Nakamoto\n"
How about that? Let's break this process down a bit.
You'll notice that, unlike
getsactually 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
getscommand 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
#chompis 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.
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.
- What are the two methods we can use to output data to the user's screen?
- What is similar between these two output methods?
- What is different between these two output methods?
- What is the method you can use to get input from the user?
- What is at least one difference between the output and input methods?