reading input from the console input. java's console input the console is the terminal window...

Post on 08-Jan-2018

265 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Java's console input When a Java program starts running, the Java runtime system will initialize many variables in support for the running program. One of these variables is the Java system variable: which represents the console input The variable System.in is included in every Java program (you don't need to define it). System.i n

TRANSCRIPT

Reading input from the console input

Java's console input

• The console is the terminal window that is running the Java program

I.e., that's the terminal window where you type in the command java ProgramName

Java's console input

• When a Java program starts running, the Java runtime system will initialize many variables in support for the running program.

One of these variables is the Java system variable:

which represents the console input

The variable System.in is included in every Java program (you don't need to define it).

System.in

Java's console input

• A Java program can obtains inputs from the console through the keyboard

• In other words:

• The Java system variable System.in represents the keyboard

A note on the notation "System.in"

• At this moment in the course, we want to learn how to read input from the keyboard

All you need to know is:

• It is too early in the course to explain the notation System.in • We will explain this after we have covered classes

• The variable named System.in represents the keyboard  

Java's Scanner library functions

• Fact:

• The details of what the computer must do to read in a number will be discussed in CS255

• The Java programming language provides a collection of methods stored in the Scanner class that perform read operations      

(Remember that a class is a container for methods)

• There is a lot of work that the computer must do to read in a floating point number

Java's Scanner library functions (cont.)

• Webpage of the Java documentation on Scanner class: http://download.oracle.com/javase/6/docs/api/java/util/Scanner.html

Java's Scanner library functions (cont.)

• We will now learn how to use the methods in the Scanner class to read in floating point numbers

Importing the Scanner class definition

• Recall the Rule of usage of methods in the Java library: (See: http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/java-lib.html)

• If a Java program wants to use a method in the Java library, the Java program must first import the containing class

• All classes in the java.lang package have already been imported into a Java program

(You can use methods in these classes without the import clause)

Importing the Scanner class definition (cont.)

• We can use the following import clause to import the Scanner class:

import java.util.Scanner;

Preparation before we can read input from the keyboard

• Before a Java program can read input from the keyboard, the program must " construct a Scanner object

It is too early to explain what this means... I will only tell youhow to do it

Preparation before we can read input from the keyboard (cont.)

• A Scanner object is constructed using the following statement:

The name varName is an identifier

Example: constructing a Scanner object named in

Scanner varName = new Scanner(System.in);

Scanner in = new Scanner(System.in);

Reading in a floating point number from the keyboard

• After having constructed the Scanner object named in, you can use the following expression to read a floating point number from the keyboard:

You must save (store) the number read in by "in.nextDouble()" in a variable with an assignment statement

in.nextDouble()

Reading in a floating point number from the keyboard (cont.)

• What happens inside the computer:

• Just like Math.sqrt(..), the method call in.nextDouble() will invoke (run) a method in Java's library.

The task performed by in.nextDouble() is to read a floating point number from the keyboard:

Reading in a floating point number from the keyboard (cont.)

If you type in "3.5" on the keyboard at the time that in.nextDouble() is running, then the call will return the value 3.5

• The return value will replace the method call:

The input value 3.5 is then stored in the variable a !!!

Summary: steps to read in a floating point number

• This figure summarizes the programming steps to read in a floating point number:

Example: reading input for the a,b,c-formula • Programming Example: ABC formula

import java.util.Scanner; // Import Scanner class (contains methods

// for reading keyboard input)  public class Abc2 { public static void main(String[] args) { double a, b, c, x1, x2; // Define 5 variable  Scanner in = new Scanner(System.in); // Construct a Scanner object  a = in.nextDouble(); // Read in next number and store in a b = in.nextDouble(); // Read in next number and store in b c = in.nextDouble(); // Read in next number and store in c

Reading in a floating point number from the keyboard (cont.)

x1 = ( -b - Math.sqrt( b*b - 4*a*c ) ) / (2*a); x2 = ( -b + Math.sqrt( b*b - 4*a*c ) ) / (2*a);  System.out.print("a = "); System.out.println(a); System.out.print("b = "); System.out.println(b); System.out.print("c = "); System.out.println(c); System.out.print("x1 = "); System.out.println(x1); System.out.print("x2 = "); System.out.println(x2); } }

Reading in a floating point number from the keyboard (cont.)

• Example Program: (Demo above code)    – Prog file:

http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/Abc2.java 

• How to run the program:

• Right click on link and save in a scratch directory

• To compile:   javac Abc2.java

• To run:          java Abc2

Good programming practice: Prompting user for input

• The previous program works, but requires the users to know exactly what to do

In other words:

• An unaware user may not know that he/she needs to enter some input before the program can perform its task.

Good programming practice: Prompting user for input (cont.)

• Good programming courtesy:

• When the program needs the user to enter input from the keyboard, it must print out a (short) prompt message

Good programming practice: Prompting user for input (cont.)

• Example

import java.util.Scanner; // Import Scanner class (contains methods // for reading keyboard input) public class Abc2 { public static void main(String[] args) { double a, b, c, x1, x2; // Define 5 variable Scanner in = new Scanner(System.in); // Construct a Scanner object

Good programming practice: Prompting user for input (cont.)

System.out.print("Enter a = "); // ******* Prompt message a = in.nextDouble(); // Read in next number and store in a System.out.print("Enter b = "); b = in.nextDouble(); // Read in next number and store in b System.out.print("Enter c = "); c = in.nextDouble(); // Read in next number and store in c x1 = ( -b - Math.sqrt( b*b - 4*a*c ) ) / (2*a); x2 = ( -b + Math.sqrt( b*b - 4*a*c ) ) / (2*a); System.out.print("a = "); System.out.println(a); System.out.print("b = "); System.out.println(b); System.out.print("c = "); System.out.println(c); System.out.print("x1 = "); System.out.println(x1); System.out.print("x2 = "); System.out.println(x2); } }

Reading other types of input from the keyboard

• The procedure to read other types of inputs from the keyboard is similar to the one above:

Reading other types of input from the keyboard (cont.)

• The only different is that we need to use a different method in the Scanner class that read the correct type of data.

Reading other types of input from the keyboard (cont.)

• Reading an integer number from the keyboard: use nextInt()

Reading other types of input from the keyboard (cont.)

• Note: you also need to use an int typed variable to store an integer value !!!

top related