Chapter 6 Repetition Asserting Java © Rick Mercer 1.

Slides:



Advertisements
Similar presentations
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 5, 2005.
Advertisements

Loops – While Loop Repetition Statements While Reading for this Lecture, L&L, 5.5.
Chapter 6 Repetition Asserting Java © Rick Mercer.
Chapter 5: Loops and Files.
Introduction to Computers and Programming More Loops  2000 Prentice Hall, Inc. All rights reserved. Modified for use with this course.
09 Non-deterministic iteration1June Non-deterministic iteration CE : Fundamental Programming Techniques.
Loops Repeat after me …. Loops A loop is a control structure in which a statement or set of statements execute repeatedly How many times the statements.
COMP 14 Introduction to Programming Miguel A. Otaduy May 20, 2004.
Control Structures II. Why is Repetition Needed? There are many situations in which the same statements need to be executed several times. Example: Formulas.
Chapter 4: Control Structures II
JAVA Control Structures: Repetition. Objectives Be able to use a loop to implement a repetitive algorithm Practice, Practice, Practice... Reinforce the.
Building Java Programs Chapter 5 Program Logic and Indefinite Loops Copyright (c) Pearson All rights reserved.
Chapter 6 Repetition Asserting Java © Rick Mercer.
Java Programming: From the Ground Up
Chapter 5 Control Structures: Loops 5.1 The while Loop The while loop is probably the most frequently used loop construct. The while loop is a conditional.
1 Fencepost loops “How do you build a fence?”. 2 The fencepost problem Problem: Write a class named PrintNumbers that reads in an integer called max and.
Control Structures II Repetition (Loops). Why Is Repetition Needed? How can you solve the following problem: What is the sum of all the numbers from 1.
Chapter 5: Control Structures II J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design,
Chapter 6A While Loops Asserting Java © Rick Mercer.
Chapter 4: Control Structures II
REPETITION STATEMENTS - Part2 Structuring Input Loops Counter-Controlled Repetition Structure Sentinel-Controlled Repetition Structure eof()-Controlled.
CONTROL STATEMENTS LOOPS. WHY IS REPETITION NEEDED?  There are many situations in which the same statements need to be executed several times.  Example:
Loops and Files. 5.1 The Increment and Decrement Operators.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5: Looping.
Think Possibility 1 Iterative Constructs ITERATION / LOOPS C provides three loop structures: the for-loop, the while-loop, and the do-while-loop. Each.
Copyright © 2012 Pearson Education, Inc. Chapter 5: Loops.
CONTROL STRUCTURE Chapter 3. CONTROL STRUCTURES ONE-WAY SELECTION Syntax: if (expression) statement Expression referred to as decision maker. Statement.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
REPETITION MTS3033 OBJECT ORIENTED PROGRAMMING 1.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 5 Control Structures II: Repetition.
Java Programming: From Problem Analysis to Program Design, 3e Chapter 5 Control Structures II: Repetition.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
Looping Increment/Decrement Switch. Flow of Control Iteration/Switch Statements.
Chapter 6 Repetition Asserting Java © Rick Mercer.
Repetition Statements
Categories of loops definite loop: Executes a known number of times.
while Repetition Structure
Chapter 5: Control Structures II (Repetition)
Chapter 5: Control Structures II
Chapter 6, Part 1 While Loops Asserting Java © Rick Mercer 1.
Determinate Loop Pattern, Java's for Statement, and Scanner objects
Chapter 5: Control Structures II
Chapter 5: Control Structures II
Java's for Statement.
Computer Programming Methodology Input and While Loop
Repetition-Counter control Loop
Chapter 5: Control Structures II
TK1114 Computer Programming
Determinate Loop Pattern, Java's for Statement, and Scanner objects
Chapter 1 Program Development
Control Structures - Repetition
Control Structure Senior Lecturer
Building Java Programs
Determinate Loops with the
Chapter 8 Repetition Computing Fundamentals with C++ 3rd Edition
Control Statements Loops.
Let’s all Repeat Together
More Loops Topics Counter-Controlled (Definite) Repetition
Michele Weigle - COMP 14 - Spr 04 Catie Welsh February 14, 2011
Control Statements Loops.
Repetition Statements
Building Java Programs
Building Java Programs
More Loops Topics Counter-Controlled (Definite) Repetition
Announcements Lab 3 was due today Assignment 2 due next Wednesday
LOOPS The loop is the control structure we use to specify that a statement or group of statements is to be repeatedly executed. Java provides three kinds.
Building Java Programs
Chapter 6, Part 1 While Loops Asserting Java © Rick Mercer 1.
Computer Science Club 1st November 2019.
Presentation transcript:

Chapter 6 Repetition Asserting Java © Rick Mercer 1

Algorithmic Pattern: The Determinate loop We often need to perform some action a specific number of times: Produce 89 paychecks. Count down to 0 (take 1 second of the clock). Compute grades for 81 students The determinate loop pattern repeats some action a specific number of times. 2

Determinate Loops with while The determinate loop pattern can be implemented with the Java while loop This template repeats a process n times: int n = /* how often we must repeat the process */ int counter = 1; while ( counter <= n ) { // the process to be repeated counter = counter + 1; } determinate loops must know the number of repetitions before they begin: know exactly how many employees, or students, or whatever that must be processed, for example 4

Example while loop produces an average Scanner keyboard = new Scanner(System.in); double sum = 0.0; double number; System.out.print("How many do you want to average? "); int n = keyboard.nextInt(); int counter = 1; // Do something n times while (counter <= n) { System.out.print("Enter number: "); // <- Repeat 3 number = keyboard.nextDouble(); // <- statements sum = sum + number; // <- n times counter = counter + 1; // make sure the loop stops } double average = sum / n; System.out.print("Average of "+ n + " numbers is "+ average);

Active Learning What is the output? : int j = 1; int n = 5; while(j <= n) { System.out.print(j + " "); j = j + 1; } j = 0; while(j <= 2 * n) { j = j + 2;

Indeterminate Loops Determinate loops have a limitation We must know n (the number of repetitions) in advance Many situations need us to repeat a set of statements an unspecified number of times: Processing report cards for every student in a school (or paychecks for all employees, or...) Allowing 1 to many ATM transactions Asking the user for specific input and allowing re-entry of input after invalid inputs 7

Some things that terminate indeterminate loops An indeterminate loop repeats a process until some stopping event terminates the repetition There are many such events, but we'll focus on these: User enters a special value indicating end of data A logical expression becomes false The Grid's mover hits the wall or an edge The end of a file is encountered Indeterminate loops do not need to know n in advance Indeterminate loops can actually determine n 8

Pattern Indeterminate loop Problem Some process must repeat an unknown number of times so some event is needed to terminate the loop. Algorithm while( the termination event has not occurred ) { execute several actions1 bring the loop closer to termination } Code while(dog.frontIsClear()) { dog.move(); Example }

While loop with a Scanner Sometimes a stream of input from the keyboard or a file needs to be read until there is no more data in the input stream Consider a Scanner object constructed with a String argument The string represents an input stream You will need Scanner in ControlFun

These assertions pass @Test public void showScanner() { Scanner scannerWithInts = new Scanner("1 2 3"); assertEquals(1, scannerWithInts.nextInt()); assertEquals(2, scannerWithInts.nextInt()); assertEquals(3, scannerWithInts.nextInt()); Scanner scanner = new Scanner("There are five words here."); assertEquals("There", scanner.next()); assertEquals("are", scanner.next()); assertEquals("five", scanner.next()); assertEquals("words", scanner.next()); assertEquals("here.", scanner.next()); }

Write method average to return the average of the doubles in a Scanner @Test public void testNum100s() { LoopFun cf = new LoopFun(); Scanner scanner1 = new Scanner("80.0 70.0 90.0"); Scanner scanner2 = new Scanner("1.0\t 2\n 3. 4.0"); assertEquals(80.0, cf.average(scanner). 0.01); assertEquals(2.5, cf.average(scanner). 0.01); }

Let sumOfNegatives return the sum of the negative integers in a Scanner @Test public void testSumOfNegs() { ControlFun cf = new ControlFun(); Scanner scanner0 = new Scanner("1 2 3"); Scanner scannerA = new Scanner("1 -2 3 -4"); Scanner scannerB = new Scanner("-1 -2 -3 -4"); assertEquals(0, cf.sumOfNegatives(scanner0)); assertEquals(-6, cf.sumOfNegatives(scannerA)); assertEquals(-10, cf.sumOfNegatives(scannerB)); }

What's wrong with this method? public int sumOfNegatives(Scanner scanner) { int result = 0; while (scanner.hasNextInt()) { if (scanner.nextInt() < 0) { result += scanner.nextInt(); } return result;