CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS We have written programs that print console...

15
CHAPTER 5 GC 101 Input & Output 1

Transcript of CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS We have written programs that print console...

Page 1: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

1

CHAPTER 5GC 101

Input & Output

Page 2: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

2

INTERACTIVE PROGRAMS

We have written programs that print console output, but it is also possible to read input from the console. The user types input into the console. We capture the input and use it in

our program.

Such a program is called an interactive program.

Interactive programs can be challenging. Computers and users think in very different ways.

Users misbehave.

Page 3: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

3

INPUT AND SYSTEM.IN

System.out

An object with methods named println and print

System.in

not intended to be used directly

We use a second object, from a class Scanner, to help us.

Constructing a Scanner object to read console input:

Scanner name = new Scanner(System.in);

Example:

Scanner console = new Scanner(System.in);

Page 4: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

4

JAVA CLASS LIBRARIES, IMPORT

Java class libraries: Classes included with Java's JDK.

organized into groups named packages

To use a package, put an import declaration in your program.

Syntax:

// put this at the very top of your program

import packageName.*;

Scanner is in a package named java.util

import java.util.*;

import java.util.Scanner;

To use Scanner, you must place the above line at the top of your program (before the public class header).

Page 5: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

5

SCANNER METHODS

Each method waits until the user presses Enter. The value typed is returned.

System.out.print("How old are you? "); // prompt

int age = console.nextInt();

System.out.println("You'll be 40 in " +

(40 - age) + " years.");

prompt: A message telling the user what input to type.

Method DescriptionnextInt() reads a token of user input as an int

nextDouble() reads a token of user input as a double

next() reads a token of user input as a String

nextLine() reads a line of user input as a String

Page 6: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

6

COMMON SCANNER METHODS

Method Example Scanner input = new Scanner (System.in);nextDouble( ) double d = input.nextDouble( );nextFloat( ) float f = input.nextFloat( );nextInt( ) int i = input.nextInt( );next() String str = input.next();

Page 7: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

7

EXAMPLE SCANNER USAGEimport java.util.*; // so that I can use Scanner

public class ReadSomeInput {

public static void main(String[] args) {

Scanner console = new Scanner(System.in);

System.out.print("How old are you? ");

int age = console.nextInt();

System.out.println(age + "... That's quite old!");

}

}

Output (user input underlined):

How old are you? 14

14... That's quite old!

Page 8: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

8

ANOTHER SCANNER EXAMPLEimport java.util.*; // so that I can use Scanner

public class ScannerSum {

public static void main(String[] args) {

Scanner console = new Scanner(System.in);

System.out.print("Please type three numbers: ");

int num1 = console.nextInt();

int num2 = console.nextInt();

int num3 = console.nextInt();

int sum = num1 + num2 + num3;

System.out.println("The sum is " + sum);

}

}

Output (user input underlined):

Please type three numbers: 8 6 13

The sum is 27

The Scanner can read multiple values from one line.

Page 9: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

9

INPUT TOKENS

token: A unit of user input, as read by the Scanner.

Tokens are separated by whitespace (spaces, tabs, newlines).

How many tokens appear on the following line of input?23 John Smith 42.0 "Hello world" $2.50 " 19"

When a token is not the type you ask for, it crashes.

System.out.print("What is your age? ");

int age = console.nextInt();

Output:

What is your age? Timmy

java.util.InputMismatchException

at java.util.Scanner.next(Unknown Source)

at java.util.Scanner.nextInt(Unknown Source)

...

Page 10: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

10

EXAMPLE

import java.util.Scanner;

public class TestInput {public static void main(String[] args) {Scanner input ; int area ,length, width; input = new Scanner (System.in); // creating an instance

System.out.println("enter the length "); length = input.nextInt(); //reading the length from the

keyboard

System.out.println("Enter the Width "); width = input.nextInt(); //reading the width from the

keyboard

area = length * width ;

System.out.println("the length is "+ length);System.out.println("the width is "+ width);System.out.println("the area is "+ area);

}}

Page 11: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

11

OUTPUT

enter the length

2

Enter the Width

3

the length is 2

the width is 3

the area is 6

Page 12: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

12

INPUT

1. import java.util.*;

2. public class Example2_16

3. {

4. static Scanner console = new Scanner(System.in);

5. public static void main(String[] args)

6. {

7. int feet;

8. int inches;

9. System.out.println("Enter two integers separated by spaces.");

10. feet = console.nextInt(); // reads int

11. inches = console.nextInt(); // reads int

12. System.out.println("Feet = " + feet);

13. System.out.println("Inches = " + inches);

14. }

15. }

Required to use the class Scanner

Page 13: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

13

INPUT

Enter two integers separated by spaces.> 23 7Feet = 23Inches = 7

If the user enters a non integer number for example 24w5 or 3.4 console.nextInt() will cause a program termination.

Page 14: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

14

INPUT

1. import java.util.*;

2. public class Example2_17

3. {

4. static Scanner console = new Scanner(System.in);

5. public static void main(String[] args)

6. {

7. String firstName;

8. String lastName;

9. int age;

10. double weight;

11.

12. System.out.println("Enter first name, last name, "

13. +"age, and weight separated by spaces.");

14.

15. firstName = console.next();

16. lastName = console.next();

17. age = console.nextInt();

18. weight = console.nextDouble();

19.

20. System.out.println("Name: " + firstName + " " + lastName);

21. System.out.println("Age: " + age);

22. System.out.println("Weight: " + weight);

23. }

24. }

Page 15: CHAPTER 5 GC 101 Input & Output 1. INTERACTIVE PROGRAMS  We have written programs that print console output, but it is also possible to read input from.

15

Enter first name, last name, age, and weight separated by spaces.> Sheila Mann 23 120.5Name: Sheila MannAge: 23Weight: 120.5