reading input from the console input. java's console input the console is the terminal window...
Post on 08-Jan-2018
265 Views
Preview:
DESCRIPTION
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