Building Java Programs

Similar documents
Topic 11 Scanner object, conditional execution

Building Java Programs

Building Java Programs

Building Java Programs

Introduction to Java

Chapter 2: Elements of Java

Scanner. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit.

Building Java Programs

System.out.println("\nEnter Product Number 1-5 (0 to stop and view summary) :

Basics of Java Programming Input and the Scanner class

File class in Java. Scanner reminder. Files 10/19/2012. File Input and Output (Savitch, Chapter 10)

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

Line-based file processing

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

CSE 1223: Introduction to Computer Programming in Java Chapter 7 File I/O

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Chapter 2 Introduction to Java programming

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

Sample CSE8A midterm Multiple Choice (circle one)

Using Files as Input/Output in Java 5.0 Applications

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

1) Which of the following is a constant, according to Java naming conventions? a. PI b. Test c. x d. radius

java.util.scanner Here are some of the many features of Scanner objects. Some Features of java.util.scanner

Chapter 2. println Versus print. Formatting Output withprintf. System.out.println for console output. console output. Console Input and Output

Introduction to Computer Programming, Spring Term 2014 Practice Assignment 3 Discussion

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

13 File Output and Input

Chulalongkorn University International School of Engineering Department of Computer Engineering Computer Programming Lab.

Install Java Development Kit (JDK) 1.8

6.1. Example: A Tip Calculator 6-1

Introduction to Java. CS 3: Computer Programming in Java

CompSci 125 Lecture 08. Chapter 5: Conditional Statements Chapter 4: return Statement

AP Computer Science File Input with Scanner

Comp 248 Introduction to Programming

Arrays. Introduction. Chapter 7

Part I. Multiple Choice Questions (2 points each):

J a v a Quiz (Unit 3, Test 0 Practice)

Week 1: Review of Java Programming Basics

Object-Oriented Programming in Java

The following program is aiming to extract from a simple text file an analysis of the content such as:

CS 106 Introduction to Computer Science I

WA2099 Introduction to Java using RAD 8.0 EVALUATION ONLY. Student Labs. Web Age Solutions Inc.

JAVA ARRAY EXAMPLE PDF

Data Structures Lecture 1

AP Computer Science Static Methods, Strings, User Input

CS 121 Intro to Programming:Java - Lecture 11 Announcements

Chapter 3. Input and output. 3.1 The System class

Visit us at

Introduction to Programming

Preet raj Core Java and Databases CS4PR. Time Allotted: 3 Hours. Final Exam: Total Possible Points 75

Programming and Data Structures with Java and JUnit. Rick Mercer

Programming in Java. What is in This Chapter? Chapter 1

CSE 1223: Introduction to Computer Programming in Java Chapter 2 Java Fundamentals

LOOPS CHAPTER CHAPTER GOALS

CS1020 Data Structures and Algorithms I Lecture Note #1. Introduction to Java

Building Java Programs

Section 6 Spring 2013

Conditionals (with solutions)

Interactive Applications (CLI) and Math

Introduction to Java Lecture Notes. Ryan Dougherty

Lecture 1 Introduction to Java

While and Do-While Loops Summer 2010 Margaret Reid-Miller

MIDTERM 1 REVIEW WRITING CODE POSSIBLE SOLUTION

Reading Input From A File

Programming Languages CIS 443

Event-Driven Programming

1.00/ Session 2 Fall Basic Java Data Types, Control Structures. Java Data Types. 8 primitive or built-in data types

AP Computer Science Java Subset

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

COSC Introduction to Computer Science I Section A, Summer Question Out of Mark A Total 16. B-1 7 B-2 4 B-3 4 B-4 4 B Total 19

CASCADING IF-ELSE. Cascading if-else Semantics. What the computer executes: What is the truth value 1? 3. Execute path 1 What is the truth value 2?

Programming in Java Course Technology, a part of Cengage Learning.

ECE 122. Engineering Problem Solving with Java

Chapter 8 Selection 8-1

Decision-making Computer Science Lesson to Prepare for UIL Computer Science Contest

Some Scanner Class Methods

Moving from CS 61A Scheme to CS 61B Java

Chapter 2 Elementary Programming

D06 PROGRAMMING with JAVA

This loop prints out the numbers from 1 through 10 on separate lines. How does it work? Output:

Unit 6. Loop statements

(Eng. Hayam Reda Seireg) Sheet Java

CS170 Lab 11 Abstract Data Types & Objects

Object Oriented Software Design

Conditional Statements Summer 2010 Margaret Reid-Miller

JAVA.UTIL.SCANNER CLASS

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Chapter 2 Basics of Scanning and Conventional Programming in Java

CS 106 Introduction to Computer Science I

Handout 3 cs180 - Programming Fundamentals Spring 15 Page 1 of 6. Handout 3. Strings and String Class. Input/Output with JOptionPane.

Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013

Arrays in Java. Working with Arrays

Building Java Programs

Course Intro Instructor Intro Java Intro, Continued

CSE 8B Midterm Fall 2015

Software Engineering Techniques

IMDB Data Set Topics: Parsing Input using Scanner class. Atul Prakash

CS114: Introduction to Java

JAVA - QUICK GUIDE. Java SE is freely available from the link Download Java. So you download a version based on your operating system.

Transcription:

Building Java Programs Chapter 4 Lecture 4-1: Scanner; if/else reading: 3.3 3.4, 4.1 Interactive Programs with Scanner reading: 3.3-3.4 1

Interactive programs 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. 3 Interactive programs Interactive programs can be challenging. Computers and users think in very different ways. Users tend to misbehave. 4 2

Scanner Scanner: An object that can read input from many sources. Communicates with System.in Can also read from files (Ch. 6), web sites, databases, etc The Scanner class is found in the java.util package. import java.util.*; // so you can use Scanner Constructing a Scanner object to read console input: Scanner <name> = new Scanner(System.in); Example: 5 Scanner methods Method Description nextint() reads an int from the user and returns it nextdouble() reads a double from the user next() reads a one-word String from the user nextline() reads a one-line String from the user Each method waits until the user presses Enter. The value typed by the user is returned. System.out.print("How old are you? "); // prompt int age = console.nextint(); System.out.println("You typed " + age); prompt: A message telling the user what input to type. 6 3

import java.util.*; Scanner example // so that I can use Scanner public class UserInputExample { public static void main(string[] args) { System.out.print("How old are you? "); int age = console.nextint(); age 12 years 53 int years = 65 - age; System.out.println(years + " years until retirement!"); Console (user input underlined): How old are you? 12 53 years until retirement! 7 Scanner example 2 import java.util.*; // so that I can use Scanner public class ScannerMultiply { public static void main(string[] args) { System.out.print("Please type two numbers: "); int num1 = console.nextint(); int num2 = console.nextint(); int product = num1 * num2; System.out.println("The product is " + product); Output (user input underlined): Please type two numbers: 8 6 The product is 48 The Scanner can read multiple values from one line. 8 4

Input tokens token: A unit of user input, as read by the Scanner. Tokens are separated by whitespace (spaces, tabs, new lines). 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)... 9 Scanners as parameters If many methods need to read input, declare a Scanner in main and pass it to the other methods as a parameter. public static void main(string[] args) { int sum = readsum3(console); double average = sum / 3.0; System.out.println("The average is " + average); // Prompts for 3 numbers and returns their sum. public static int readsum3(scanner console) { System.out.print("Type 3 numbers: "); int num1 = console.nextint(); int num2 = console.nextint(); int num3 = console.nextint(); return num1 + num2 + num3; 10 5

Program puzzle Consider changing the output to include the minimum value: Type 3 numbers: 8 6 13 The average is 9.0 The minimum value is 6 How would we change the previous program? public static void main(string[] args) { 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("Type 3 numbers: "); int num1 = console.nextint(); int num2 = console.nextint(); int num3 = console.nextint(); return num1 + num2 + num3; 11 Can t return multiple values! import java.util.*; // so that I can use Scanner public class Average { public static void main(string[] args) { System.out.print("Type 3 numbers: "); int num1 = console.nextint(); int num2 = console.nextint(); int num3 = console.nextint(); double average = (num1 + num2 + num3) / 3.0; System.out.println("The average is " + average); System.out.println("The minimum value is " + Math.min(num1, Math.min(num2, num3))); 12 6

The if/else statement reading: 4.1 Conditionals If you eat your vegetables, then you can have dessert. If you do your homework, then you may go outside to play, or else you ll be grounded for life. 14 7

The if statement Executes a block of statements only if a test is true <statement>;... <statement>; Example: double gpa = console.nextdouble(); if (gpa >= 3.0) { System.out.println("Good job! Here s a cookie."); 15 The if/else statement Executes one block if a test is true, another if false else { Example: double gpa = console.nextdouble(); if (gpa >= 3.0) { System.out.println("Good job! Here s a cookie."); else { System.out.println("No cookie for you!"); 16 8

Relational expressions if statements and for loops both use logical tests. for (int i = 1; i <= 10; i++) {... if (i <= 10) {... These are Boolean expressions, seen in Ch. 5. Tests use relational operators: Operator Meaning Example Value == equals 1 + 1 == 2 true!= does not equal 3.2!= 2.5 true < less than 10 < 5 false > greater than 10 > 5 true <= less than or equal to 126 <= 100 false >= greater than or equal to 5.0 >= 5.0 true 17 Misuse of if What's wrong with the following code? System.out.print("What percentage did you earn? "); int percent = console.nextint(); if (percent >= 90) { System.out.println("You got an A!"); if (percent >= 80) { System.out.println("You got a B!"); if (percent >= 70) { System.out.println("You got a C!"); if (percent >= 60) { System.out.println("You got a D!"); if (percent < 60) { System.out.println("You got an F!");... 18 9

Nested if/else Chooses between outcomes using many tests else else { Example: if (x > 0) { System.out.println("Positive"); else if (x < 0) { System.out.println("Negative"); else { System.out.println("Zero"); 19 Nested if/else/if If it ends with else, exactly one path must be taken. If it ends with if, the code might not execute any path. else else Example: if (place == 1) { System.out.println("Gold medal!"); else if (place == 2) { System.out.println("Silver medal!"); else if (place == 3) { System.out.println("Bronze medal."); 20 10

Summary: if structures exactly 1 path (mutually exclusive) else else { 0 or 1 path (mutually exclusive) else else 0, 1, or many paths (independent tests; not exclusive) 21 Which nested if/else? (1) if/if/if (2) nested if/else (3) nested if/else/if Whether a user is lower, middle, or upper-class based on income. (2) nested if / else if / else Whether you made the dean's list (GPA 3.8) or honor roll (3.5-3.8). (3) nested if / else if Whether a number is divisible by 2, 3, and/or 5. (1) sequential if / if / if Computing a grade of A, B, C, D, or F based on a percentage. (2) nested if / else if / else if / else if / else 22 11

Nested if/else question Formula for body mass index (BMI): BMI Weight class below 18.5 underweight 18.5-24.9 normal 25.0-29.9 overweight 30.0 and up obese Write a program that produces output like the following: This program reads data for two people and computes their body mass index (BMI). Enter next person's information: height (in inches)? 70.0 weight (in pounds)? 194.25 Enter next person's information: height (in inches)? 62.5 weight (in pounds)? 130.5 Person 1 BMI = 27.868928571428572 overweight Person 2 BMI = 23.485824 normal Difference = 4.3831045714285715 23 Nested if/else answer // This program computes two people's body mass index (BMI) and // compares them. The code uses Scanner for input, and parameters/returns. import java.util.*; // so that I can use Scanner public class BMI { public static void main(string[] args) { introduction(); double bmi1 = person(console); double bmi2 = person(console); // report overall results report(1, bmi1); report(2, bmi2); System.out.println("Difference = " + Math.abs(bmi1 - bmi2)); // prints a welcome message explaining the program public static void introduction() { System.out.println("This program reads data for two people and"); System.out.println("computes their body mass index (BMI)."); System.out.println();... 24 12

Nested if/else, cont'd. // reads information for one person, computes their BMI, and returns it public static double person(scanner console) { System.out.println("Enter next person's information:"); System.out.print("height (in inches)? "); double height = console.nextdouble(); System.out.print("weight (in pounds)? "); double weight = console.nextdouble(); System.out.println(); double bodymass = bmi(height, weight); return bodymass; // Computes/returns a person's BMI based on their height and weight. public static double bmi(double height, double weight) { return (weight * 703 / height / height); // Outputs information about a person's BMI and weight status. public static void report(int number, double bmi) { System.out.println("Person " + number + " BMI = " + bmi); if (bmi < 18.5) { System.out.println("underweight"); else if (bmi < 25) { System.out.println("normal"); else if (bmi < 30) { System.out.println("overweight"); else { System.out.println("obese"); 25 The if/else hammer Just because you learned a new construct does not mean that every new problem has to be solved using that construct! int z; if (x > y) { z = x; else { z = y; double d = a; if (b < d) { d = b; if (c < d) { d = c; int z = Math.max(x, y); double d = Math.min(a, Math.min(b, c)); 26 13