Getting Input from the User

Being able to write information to the screen is very nice, but computer programs are supposed to be interactive. It is even better if the program can get input from the user. Take a look at the program featured in Figure 1.14 to see an example of a simple program that interacts with the user.

Figure 1.14. The user types a response and receives a customized greeting.


Getting a value from the user is a straightforward task but requires you to understand a couple new concepts. First, look at the code, and you will see that it is very similar to the Hello World program:

using System;

namespace HelloUser
{
  /// <summary>
  /// Add user input to the Hello World program 
  /// Andy Harris, 10/30/01
  /// </summary>
  class Hello
  {
    static void Main(string[] args)
    {
      string userName;
      Console.Write("Please enter your name: ");
      userName = Console.ReadLine();
      Console.WriteLine("Hi there, {0}!", userName);
      Console.WriteLine("Please press the Enter key to continue");
      Console.ReadLine();
    } // end main
  } // end class
} // end namespace

Even though the code is mainly familiar, a couple elements might have caught your eye. These changes are all used to add interactivity. This version of the program will ask the user for a name and will use that name in a personalized greeting. To do this, you need a new concept called a variable and you’ll use the Console.ReadLine() method in a new way.

Creating a String Variable

If you’re going to ask the user for something, you must have a place ready to catch it. Ultimately, computers store all information in memory cells, which handle only binary information. Even seasoned programmers generally prefer to work directly with numbers and text instead of the binary values the computer understands. Computer languages allow you to create special places in memory, designed to hold information. These memory cells are variables. You will deal with many kinds of variables as a C# programmer, but one of the most interest-ing types is text. Of course, computer scientists could never call this kind of information words or text because everybody would know what they are talking about. Instead, text information is almost always called string data in computing circles.

Actually, text is referred to as strings for a descriptive, almost poetic reason. Computers can’t deal with words at all, or even letters. A letter is stored as a numeric value, using a code such as ASCII (or, in later languages such as C#, unicode). Text is simply a bunch of these numeric values placed in contiguous cells, like beads on a string. All this isn’t important, I suppose, but it is cool to wander around muttering about string manipulation under your breath. People might think that you’re smart.

The line

string userName;

is simply setting up a chunk of memory so that it is ready to store text data. The term string is used to tell the compiler to set up a memory area to handle string (or text) values. The term userName refers to the name I have given this piece of memory.

As a programmer, you will have many opportunities to name things. A few guidelines might come in handy:

  • Don’t use spaces or punctuation in names; these can potentially confuse the compiler.

  • Use descriptive names. If you don’t, you could find yourself baffled about its meaning when you come back to debug it. Naming the variable something more descriptive, such as radius or taxRate, is far better than calling it tr.

  • Resist using long variable names because misspelling them is too easy, which could cause problems later.

  • C# is a case-sensitive language. Most programmers use mainly lowercase letters in their variable names, reserving uppercase letters for differentiating words (such as the capital R in taxRate).

Getting a Value with the Console.ReadLine() Method

Now that you have a variable (the string variable userName) to hold a string value, you need to get that value from the user. The ReadLine() method of the console object is used to, well, read a line from the console. It waits for the user to type something on the screen and, as soon as it encounters the Enter key, returns whatever was typed. Notice the way the ReadLine() method is written in the program:

userName = Console.ReadLine();

This line of code is an example of an assignment statement. Assignment is one of the most important ideas in programming, but it’s very simple. Some sort of value is being copied from one thing to another. As you read this line, train yourself to think of the equal sign (=) as gets, not equals. This is important because in C#, the equal sign is used not to determine equality but as an assignment operator. (That statement will make more sense after you read Chapter 2, “Branching and Operators: The Math Game.”) If you read the line as “userName gets Console.ReadLine(),” you will understand what this line of code is supposed to do. It tells the computer to get a line of text from the console and copy that text value to the string variable userName. In most programming languages, assignment flows from right to left. That is, the variable (userName) is given the value (whatever is read from the console).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.97.216