Copyright 2009 by Pearson Education Building Java Programs Chapter 2 Lecture 2-2: The for Loop reading: 2.3 self-check: 12-26 exercises: 2-14 videos: Ch.

Slides:



Advertisements
Similar presentations
Copyright 2008 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-2: The for Loop reading: 2.3 self-check: exercises: 2-14 videos:
Advertisements

CS 106 Introduction to Computer Science I 02 / 12 / 2007 Instructor: Michael Eckmann.
Introduction to Computers and Programming for Loops  2000 Prentice Hall, Inc. All rights reserved. Modified for use with this course. Introduction to.
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 2: Primitive Data and Definite Loops.
Loops Repetition Statements. Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional.
© 2004 Pearson Addison-Wesley. All rights reserved5-1 Iterations/ Loops The while Statement Other Repetition Statements.
CS305j Introduction to ComputingNested For Loops 1 Topic 6 Nested for Loops "Complexity has and will maintain a strong fascination for many people. It.
1 for Loops Computer Science is a science of abstraction - creating the right model for a problem and devising the appropriate mechanizable techniques.
Building Java Programs Chapter 2 Primitive Data and Definite Loops.
October 28, 2015ICS102: For Loop1 The for-loop and Nested loops.
Copyright 2008 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-3: Loop Figures and Constants reading: self-checks: 27 exercises:
1 BUILDING JAVA PROGRAMS CHAPTER 2 PRIMITIVE DATA AND DEFINITE LOOPS.
1 The for loop. 2 Repetition with for loops So far, repeating a statement is redundant: System.out.println("Homer says:"); System.out.println("I am so.
ADMIT TICKET WHAT DOES THIS OUTPUT? double y = 2.5; int x = 6 / (int) y; System.out.println(“x = “ + x);
6.2 For…Next Loops General Form of a For…Next Loop
Copyright 2010 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 4: Loop Figures and Constants reading:
Copyright 2010 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-2: The for Loop reading: 2.3 self-check: exercises: 2-14 videos:
Copyright 2008 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-2: The for Loop reading: 2.3 self-check: exercises: 2-14 videos:
Building Java Programs Chapter 2 Primitive Data and Definite Loops.
Building Java Programs Chapter 2 Primitive Data and Definite Loops Copyright (c) Pearson All rights reserved.
Nested for loops.
Printing with for Loops To print a character multiple times, use a for loop. for (int j = 1; j
For Loop Tips And Tricks
The for loop.
Copyright 2008 by Pearson Education 1 Nested loops reading: 2.3 self-check: exercises: videos: Ch. 2 #4.
1 BUILDING JAVA PROGRAMS CHAPTER 2 PRIMITIVE DATA AND DEFINITE LOOPS.
CS 112 Introduction to Programming Loop Examples; Variable Scoping; Nested Loops; Yang (Richard) Yang Computer Science Department Yale University 208A.
1 Building Java Programs Chapter 2: Primitive Data and Definite Loops These lecture notes are copyright (C) Marty Stepp and Stuart Reges, They may.
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 2: Primitive Data and Definite Loops.
Adapted from slides by Marty Stepp and Stuart Reges
Building Java Programs Chapter 2
Lecture 4: Program Control Flow
Primitive Data, Variables, Loops (Maybe)
Topic 5 for Loops -Arthur Schopenhauer
CSc 110, Autumn 2017 Lecture 5: The for Loop and user input
Building Java Programs Chapter 2
Building Java Programs Chapter 2
Primitive data, expressions, and variables
CSc 110, Spring 2017 Lecture 4: Nested Loops and Loop Figures
Building Java Programs
CSc 110, Spring 2018 Lecture 5: The for Loop and user input
Building Java Programs
Building Java Programs
Lab5 PROGRAMMING 1 Loop chapter4.
Building Java Programs
Variables variable: A piece of the computer's memory that is given a name and type, and can store a value. Like preset stations on a car stereo, or cell.
Lecture 5: For Loops Building Java Programs: A Back to Basics Approach
Building Java Programs
Lecture 8:The For Loop AP Computer Science Principles.
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
CSE 190D, Winter 2013 Building Java Programs Chapter 2
Building Java Programs
The for loop suggested reading:
SSEA Computer Science: Track A
Primitive data, expressions, and variables
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Suggested self-checks:
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Chapter 2 Lecture 2-2: The for Loop reading: 2.3
CIS 110: Introduction to Computer Programming
Presentation transcript:

Copyright 2009 by Pearson Education Building Java Programs Chapter 2 Lecture 2-2: The for Loop reading: 2.3 self-check: exercises: 2-14 videos: Ch. 2 #3

Copyright 2009 by Pearson Education 2 Increment and decrement shortcuts to increase or decrease a variable's value by 1 ShorthandEquivalent longer version variable ++; variable = variable + 1; variable --; variable = variable - 1; int x = 2; x++;// x = x + 1; // x now stores 3 double gpa = 2.5; gpa--;// gpa = gpa - 1; // gpa now stores 1.5

Copyright 2009 by Pearson Education 3 Modify-and-assign operators shortcuts to modify a variable's value ShorthandEquivalent longer version variable += value ; variable = variable + value ; variable -= value ; variable = variable - value ; variable *= value ; variable = variable * value ; variable /= value ; variable = variable / value ; variable %= value ; variable = variable % value ; x += 3;// x = x + 3; gpa -= 0.5;// gpa = gpa - 0.5; number *= 2;// number = number * 2;

Copyright 2009 by Pearson Education 4 Redundant repetition Repeating the same task multiple times can result in redundant code: System.out.println(“Nananana, Hey Jude"); Intuition: “I want to print this line 5 times” for loop: control structure that instructs the computer to execute a group of instructions repeatedly: for (int i = 1; i <= 5; i++) { // repeat 5 times System.out.println(“Nananana, Hey Jude"); }

Copyright 2009 by Pearson Education 5 Repetition over a range Similarly redundant task: System.out.println("1 squared = " + 1 * 1); System.out.println("2 squared = " + 2 * 2); System.out.println("3 squared = " + 3 * 3); System.out.println("4 squared = " + 4 * 4); System.out.println("5 squared = " + 5 * 5); System.out.println("6 squared = " + 6 * 6); Intuition: "I want to print a line for each number from 1 to 6" Can use for-loop with loop variable ( i ) in the body: for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } "For each integer i from 1 through 6, print..."

Copyright 2009 by Pearson Education 6 for loop syntax for ( initialization ; test ; update ) { statement ;... statement ; } Perform initialization once. Repeat the following: Check if the test is true. If not, stop. Execute the statements. Perform the update. body header

Copyright 2009 by Pearson Education 7 Initialization for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } Tells Java what variable to use in the loop Called a loop counter Can use any variable name, not just i Can start at any value, not just 1

Copyright 2009 by Pearson Education 8 Test for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } Tests the loop counter variable against a bound Uses comparison operators: < less than <= less than or equal to > greater than >= greater than or equal to

Copyright 2009 by Pearson Education 9 for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } Changes loop counter's value after each repetition Without an update, you would have an infinite loop Can be any expression: for (int i = 1; i <= 9; i += 2) { System.out.println(i); } Update

Copyright 2009 by Pearson Education 10 Loop walkthrough for (int i = 1; i <= 4; i++) { System.out.println(i + " squared = " + (i * i)); } System.out.println("Hooray!"); Output: 1 squared = 1 2 squared = 4 3 squared = 9 4 squared = 16 Hooray!

Copyright 2009 by Pearson Education 11 System.out.println("+----+"); for (int i = 1; i <= 3; i++) { System.out.println("\\ /"); System.out.println("/ \\"); } System.out.println("+----+"); Output: \ / / \ \ / / \ \ / / \ Multi-line loop body

Copyright 2009 by Pearson Education 12 Prints without moving to a new line allows you to print partial messages on the same line int highestTemp = 5; for (int i = -3; i <= highestTemp / 2; i++) { System.out.print((i * ) + " "); } Output: System.out.print

Copyright 2009 by Pearson Education 13 The update can use -- to make the loop count down. The test must say > instead of < System.out.print("T-minus "); for (int i = 10; i >= 1; i--) { System.out.print(i + ", "); } System.out.println("blastoff!"); Output: T-minus 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, blastoff! Counting down

Copyright 2009 by Pearson Education 14 Mapping loops to numbers for (int count = 1; count <= 5; count++) { System.out.print(count + " "); } Output: How could we modify the body of the loop to print: for (int count = 1; count <= 5; count++) { System.out.print(3 * count + " "); }

Copyright 2009 by Pearson Education 15 Loop tables What statement in the body would cause the loop to print: To see patterns, make a table of count and the numbers. Each time count goes up by 1, the number should go up by 5. But count * 5 is too great by 3, so we subtract 3. count number to print 5 * count * count

Copyright 2009 by Pearson Education 16 Loop tables question What statement in the body would cause the loop to print: Let's create the loop table together. Each time count goes up 1, the number printed should... But this multiple is off by a margin of... count number to print * count-4 * count * count

Copyright 2009 by Pearson Education Nested loops reading: 2.3 self-check: exercises: videos: Ch. 2 #4

Copyright 2009 by Pearson Education 18 Redundancy between loops for (int j = 1; j <= 10; j++) { System.out.print("*"); } System.out.println(); for (int j = 1; j <= 10; j++) { System.out.print("*"); } System.out.println(); for (int j = 1; j <= 10; j++) { System.out.print("*"); } System.out.println(); for (int j = 1; j <= 10; j++) { System.out.print("*"); } System.out.println(); Output: ********** **********

Copyright 2009 by Pearson Education 19 Nested loops nested loop: A loop placed inside another loop. The inner loop's counter variable must have a different name. for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 10; j++) { System.out.print("*"); } System.out.println(); // to end the line } Output: ********** ********** Statements in the outer loop's body are executed 4 times. The inner loop prints 10 stars each time it is run.

Copyright 2009 by Pearson Education 20 Nested for loop exercise What is the output of the following nested for loops? for (int i = 1; i <= 4; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println(); } Output: * ** *** ****

Copyright 2009 by Pearson Education 21 Nested for loop exercise What is the output of the following nested for loops? for (int i = 1; i <= 4; i++) { for (int j = 1; j <= i; j++) { System.out.print(i); } System.out.println(); } Output:

Copyright 2009 by Pearson Education 22 Complex lines What nested for loops produce the following output? We must build multiple complex lines of output using: an outer "vertical" loop for each of the lines inner "horizontal" loop(s) for the patterns within each line outer loop (loops 5 times because there are 5 lines) inner loop (repeated characters on each line)

Copyright 2009 by Pearson Education 23 Outer and inner loop First write the outer loop, from 1 to the number of lines. for (int line = 1; line <= 5; line++) {... } Now look at the line contents. Each line has a pattern: some dots (0 dots on the last line) a number

Copyright 2009 by Pearson Education 24 Nested for loop exercise Make a table to represent any patterns on each line To print a character multiple times, use a for loop. for (int j = 1; j <= 4; j++) { System.out.print("."); // 4 dots } line # of dots * line * line

Copyright 2009 by Pearson Education 25 Answer: for (int line = 1; line <= 5; line++) { for (int j = 1; j <= (-1 * line + 5); j++) { System.out.print("."); } System.out.println(line); } Output: Nested for loop solution

Copyright 2009 by Pearson Education 26 Nested for loop exercise What is the output of the following nested for loops? for (int line = 1; line <= 5; line++) { for (int j = 1; j <= (-1 * line + 5); j++) { System.out.print("."); } for (int k = 1; k <= line; k++) { System.out.print(line); } System.out.println(); } Answer:

Copyright 2009 by Pearson Education 27 Nested for loop exercise Modify the previous code to produce this output: Answer: for (int line = 1; line <= 5; line++) { for (int j = 1; j <= (-1 * line + 5); j++) { System.out.print("."); } System.out.print(line); for (int j = 1; j <= (line - 1); j++) { System.out.print("."); } System.out.println(); }

Copyright 2009 by Pearson Education 28 Nested for loop exercise Rewrite this code to reduce redundancy for (int i = 1; i <= 5; i++) { System.out.print(i + "\t"); } System.out.println(); for (int i = 1; i <= 5; i++) { System.out.print(i * 2 + "\t"); } System.out.println(); for (int i = 1; i <= 5; i++) { System.out.print(i * 3 + "\t"); } System.out.println(); for (int i = 1; i <= 5; i++) { System.out.print(i * 4 + "\t"){ } System.out.println(); Output:

Copyright 2009 by Pearson Education 29 Nested for loop exercise Answer: for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 5; j++) { System.out.print((i * j) + "\t"); } System.out.println(); // to end the line } Output:

Copyright 2009 by Pearson Education 30 Common errors Both of the following sets of code produce infinite loops: for (int i = 1; i <= 10; i++) { for (int j = 1; i <= 5; j++) { System.out.print(j); } System.out.println(); } for (int i = 1; i <= 10; i++) { for (int j = 1; j <= 5; i++) { System.out.print(j); } System.out.println(); }