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

Slides:



Advertisements
Similar presentations
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 2: Primitive Data and Definite Loops.
Advertisements

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.
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.
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.
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
CS 112 Introduction to Programming Variables; Type Casting; Using Variables in for Loops Yang (Richard) Yang Computer Science Department Yale University.
Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA CSC141 Computer Science I 12/11/20151.
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.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
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.
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Decisions and Iterations.
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
CSc 110, Spring 2018 Lecture 5: The for Loop and user input
Building Java Programs
Building Java Programs
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
CSE 190D, Winter 2013 Building Java Programs Chapter 2
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
Presentation transcript:

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: Ch. 2 #3

Copyright 2008 by Pearson Education 2 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 2008 by Pearson Education 3 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; (or x += 1; ) // x now stores 3 double gpa = 2.5; gpa--;// gpa -= 1; // gpa now stores 1.5

Copyright 2008 by Pearson Education 4 Repetition over a range 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" There's a statement, the for loop, that does just that! for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } "For each integer i from 1 through 6, print..."

Copyright 2008 by Pearson Education 5 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 2008 by Pearson Education 6 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 2008 by Pearson Education 7 Test for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } Tests whether the loop should stop Typically uses comparison operators: < less than <= less than or equal to > greater than >= greater than or equal to

Copyright 2008 by Pearson Education 8 Update for (int i = 1; i <= 6; i++) { System.out.println(i + " squared = " + (i * i)); } What to do after the loop body Update the loop-counter variable appropriately 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); }

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

Copyright 2008 by Pearson Education 10 General repetition System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("I am so smart"); System.out.println("S-M-R-T"); System.out.println("I mean S-M-A-R-T"); The loop's body doesn't have to use the counter variable: for (int i = 1; i <= 5; i++) { // repeat 5 times System.out.println("I am so smart"); } System.out.println("S-M-R-T"); System.out.println("I mean S-M-A-R-T");

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

Copyright 2008 by Pearson Education 12 Expressions for counter int highTemp = 5; for (int i = -3; i <= highTemp / 2; i++) { System.out.println(i * ); } Output:

Copyright 2008 by Pearson Education 13 System.out.print 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:

Copyright 2008 by Pearson Education 14 Counting down The update can use -- to make the loop count down. Be sure to use the right test ( > or >= instead of < or <= ) 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!

Copyright 2008 by Pearson Education 15 Where are we Done: many basic features of Java Static methods int, double, and strings Expressions: +, -, *, /, %,, >= Variables For loops System.out.println and System.out.print Many more features to come, but first how to use for loops effectively No new rules, just new programming patterns And practice designing programs For loops can nest (be inside other for loops)

Copyright 2008 by Pearson Education 16 Mapping loops to numbers for (int count = 1; count <= 5; count++) {... } What statement in the body would cause the loop to print: for (int count = 1; count <= 5; count++) { System.out.print(3 * count " "); }

Copyright 2008 by Pearson Education 17 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 * count * count

Copyright 2008 by Pearson Education 18 Loop tables question What statement in the body would cause the loop to print: You try it… 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 2008 by Pearson Education 19 Nested loops reading: 2.3 self-check: exercises: videos: Ch. 2 #4

Copyright 2008 by Pearson Education 20 Redundancy between loops for (int j = 1; j <= 5; j++) { System.out.print(j + "\t"); } System.out.println(); for (int j = 1; j <= 5; j++) { System.out.print(2 * j + "\t"); } System.out.println(); for (int j = 1; j <= 5; j++) { System.out.print(3 * j + "\t"); } System.out.println(); for (int j = 1; j <= 5; j++) { System.out.print(4 * j + "\t"){ } System.out.println(); Output:

Copyright 2008 by Pearson Education 21 Nested loops nested loop: A loop placed inside another loop. 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: Statements in the outer loop's body are executed 4 times. The inner loop prints 5 numbers each time it is run.

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

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

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

Copyright 2008 by Pearson Education 25 Complex lines What nested for loops produce the following output? Can 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 2008 by Pearson Education 26 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 2008 by Pearson Education 27 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 2008 by Pearson Education 28 Nested for loop solution 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:

Copyright 2008 by Pearson Education 29 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 2008 by Pearson Education 30 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 2008 by Pearson Education 31 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(); }