scanner
play

Scanner We have written programs that print console output. It is - PDF document

Scanner We have written programs that print console output. It is also possible to read input from the console. The user types the input into the console.


  1. �������������������� Scanner ������� � We have written programs that print console output. � It is also possible to read input from the console. � The user types the input into the console. � The program uses the input to do something. � Such a program is called an interactive program . Readings: 3.4 � � �������������������� ���������� System.in � System.out is an object! � Interactive programs can be challenging. � It has the methods named println and print for � Computers and users think in very different ways. printing to the console. � Users tend to “misbehave”. � We read input using an object named System.in � System.in is not intended to be used directly. � We will use another object, from a class called Scanner , to read input from System.in . � � Scanner ������� Scanner � Some methods of Scanner : � Constructing a Scanner object to read the console: Scanner <name> = new Scanner(System.in); Method Description reads and returns user input as an int nextInt() � Example: nextDouble() reads and returns user input as a double next() reads and returns user input as a String Scanner console = new Scanner(System.in); � Each of these methods pauses your program until the user types input and presses Enter. � Then the value typed is returned to your program. � � 1

  2. �������� Scanner ������ ������������ token : A unit of user input, as read by the Scanner . � � Example: Tokens are separated by whitespace (spaces, tabs, new lines). � How many tokens appear on the following line of input? � System.out.print("How old are you? "); // prompt 23 John Smith 42.0 "Hello world" int age = console.nextInt(); System.out.println("You'll be 40 in " + (40 - age) When the token doesn't match the type the Scanner tries to read, � + " years."); the program crashes. Example: � System.out.print("What is your age? "); � prompt : A message printed to the user, telling them int age = console.nextInt(); Sample Run: what input to type. What is your age? Timmy InputMismatchException: at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) ... � � ����������� ����� "����� ����������� � Java class libraries : A large set of Java classes import java.util.*; // so that I can use Scanner available for you to use. public class ReadSomeInput { public static void main(String[] args) { � Classes are grouped into packages . Scanner console = new Scanner(System.in); � To use the classes from a package, you must include an System.out.print("What is your first name? "); import declaration at the top of your program. String name = console.next(); System.out.print("And how old are you? "); int age = console.nextInt(); � Import declaration, general syntax: System.out.println(name + " is " + age + ". That's quite old!"); import <package name> .*; } } � Scanner is in a package named java.util Sample Run: What is your first name? Marty import java.util.*; How old are you? 12 Marty is 12. That's quite old! � �! "����������� ����������� #��������������������� import java.util.*; // so that I can use Scanner � The main method in the previous program could be better structured by grouping the collection of numbers into a method. public class Average { public static void main(String[] args) { Scanner console = new Scanner(System.in); import java.util.*; // so that I can use Scanner System.out.print("Please type three numbers: "); int num1 = console.nextInt(); public class Average { int num2 = console.nextInt(); public static void main(String[] args) { int num3 = console.nextInt(); Scanner console = new Scanner(System.in); double average = (num1 + num2 + num3) / 3.0; System.out.println("The average is " + average); System.out.print("Please type three numbers: "); } int num1 = console.nextInt(); } int num2 = console.nextInt(); int num3 = console.nextInt(); Sample Run: Please type three numbers: 8 6 13 double average = (num1 + num2 + num3) / 3.0; The average is 9.0 System.out.println("The average is " + average); } Notice that the Scanner can read multiple values from one line. � } �� �� 2

  3. #��������������������� "����������� �����������$�%�������� � To have multiple methods read user input, declare a Consider changing the output to include the minimum value: � Scanner in main and pass it to each method as a parameter. Please type three numbers: 8 6 13 The average is 9.0 The minimum value is 6 public static void main(String[] args) { How would we change the previous program? � Scanner console = new Scanner(System.in); int sum = readSum3( console ); public static void main(String[] args) { double average = sum / 3.0; Scanner console = new Scanner(System.in); System.out.println("The average is " + average); int sum = readSum3(console); double average = sum / 3.0; } System.out.println("The average is " + average); // What goes here? public static int readSum3( Scanner console ) { } System.out.print("Please type three numbers: "); public static int readSum3(Scanner console) { int num1 = console.nextInt(); System.out.print("Please type three numbers: "); int num2 = console.nextInt(); int num1 = console.nextInt(); int num2 = console.nextInt(); int num3 = console.nextInt(); int num3 = console.nextInt(); return num1 + num2 + num3; return num1 + num2 + num3; } } �� �� &������������������������������������� ��'�� ()������$�*&� import java.util.*; // so that I can use Scanner � A person's body mass index (BMI) is computed as follows: weight BMI = height 2 × 703 public class Average { public static void main(String[] args) { Scanner console = new Scanner(System.in); � Write a program that produces the following output: System.out.print("Please type three numbers: "); This program reads in data for two people and computes their body mass index (BMI) int num1 = console.nextInt(); and weight status. int num2 = console.nextInt(); int num3 = console.nextInt(); Enter next person's information: height (in inches)? 62.5 weight (in pounds)? 130.5 double average = (num1 + num2 + num3) / 3.0; System.out.println("The average is " + average); Enter next person's information: height (in inches)? 58.5 System.out.println("The minimum value is " + weight (in pounds)? 90 Math.min(num1, Math.min(num2, num3))); } Person #1 body mass index = 23.485824 Person #2 body mass index = 18.487836949375414 } Difference = 4.997987050624587 �� �� #� �����$�*&� #� �����$�*&� // This program computes two people's body mass index (BMI) // reads information for one person, computes their BMI, and returns it // and compares them. The code uses parameters and returns. public static double processPerson( Scanner console ) { System.out.println("Enter next person's information:"); import java.util.*; // so that I can use Scanner System.out.print("height (in inches)? "); double height = console.nextDouble() ; public class BMI { public static void main(String[] args) { System.out.print("weight (in pounds)? "); introduction(); double weight = console.nextDouble() ; Scanner console = new Scanner(System.in); System.out.println(); double bmi1 = processPerson( console ); double bmi2 = processPerson( console ); double bmi = getBMI(height, weight); outputResults(bmi1, bmi2); } return bmi; } // prints a welcome message explaining the program public static void introduction() { // Computes a person's body mass index based on their height and weight System.out.println("This program reads in data for two people"); // and returns the BMI as its result. System.out.println("and computes their body mass index (BMI)"); public static double getBMI(double height, double weight) { System.out.println("and weight status."); double bmi = weight / (height * height) * 703; System.out.println(); return bmi; } } } // report overall results public static void outputResults(double bmi1, double bmi2) { System.out.println("Person #1 body mass index = " + bmi1); System.out.println("Person #2 body mass index = " + bmi2); double difference = Math.abs(bmi1 - bmi2); System.out.println("Difference = " + difference); } �� �� 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend