Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of British Columbia CPSC 111, Intro to Computation 2009W2: Jan-Apr 2010 Tamara Munzner 1 Loops II Lecture 18, Mon Mar 1 2010

Similar presentations


Presentation on theme: "University of British Columbia CPSC 111, Intro to Computation 2009W2: Jan-Apr 2010 Tamara Munzner 1 Loops II Lecture 18, Mon Mar 1 2010"— Presentation transcript:

1 University of British Columbia CPSC 111, Intro to Computation 2009W2: Jan-Apr 2010 Tamara Munzner 1 Loops II Lecture 18, Mon Mar 1 2010 http://www.cs.ubc.ca/~tmm/courses/111-10 borrowing from slides by Kurt Eiselt

2 2 Reading n This week: Chapter 6 all (6.1-6.4) n second edition: Chap 7

3 3 News n Welcome back! n Midterms returned last time n get yours after class if you didn't already n Department news

4 4 Department of Computer Science Undergraduate Events Events this week Resume & Cover Letter Drop-In Session Date: Wed., Mar 3 Time: 12 – 3 pm (20 mins. sessions) Location: Rm 255, ICICS/CS Find a Job Fast! Info Session Date: Thurs., Mar 4 Time: 12:30 – 1:45 pm Location: DMP 201 Registration: Email dianejoh@cs.ubc.cadianejoh@cs.ubc.ca Townhall Meting – 1 st Year CS Students Date: Thurs., Mar 4 Time: 12:30 - 2 pm Location: DMP 310 Lunch will be provided! Faculty Talk – Son Vuong Title: Mobile Learning via LIVES Date: Thurs., Mar 4 Time: 12:30 – 1:45 pm Location: DMP 201 Events next week Townhall Meeting – Combined Majors/Honours, BA, B.Comm in CS Date: Thurs., Mar 11 Time: 12:30 – 2 pm Location: DMP 310 Lunch will be provided! CS Distinguished Lecture Series – Featuring David Parkes Title: Incentive Mechanism Engineering in the Internet Age Date: Thurs., Mar 11 Time: 3:30 – 4:50 pm Location: DMP 110 CSSS Moive Night – “Zombieland” & “Iron Man” Date: Thurs., Mar 11 Time: 6 – 10 pm Location: DMP 310 Free pop & popcorn!

5 5 Recap: While Statement while (boolean expression) body n Simplest form of loop in Java n Body of loop can be n single statement n whole block of many statements in curly braces n Control flow n body executed if expression is true n then boolean expression evaluated again n if expression still true, body executed again n repetition continues until expression false n then processing continues with next statement after loop

6 6 Recap: If Versus While Statements n How can loop boolean change from false to true? boolean expression statement true how if statement works boolean expression statement truefalse how while statement works false

7 7 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n while statement

8 8 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n boolean expression

9 9 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n while statement body

10 10 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n statement after while n control flow resumes here when boolean is false

11 11 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n trace what happens when execute

12 12 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3

13 13 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 1

14 14 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 1 Is counter <= limit? yes

15 15 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 1 Is counter <= limit? yes "The square of 1 is 1" printed on monitor

16 16 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 2

17 17 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 2 Is counter <= limit? yes

18 18 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 2 Is counter <= limit? yes "The square of 2 is 4" printed on monitor

19 19 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 3

20 20 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 3 Is counter <= limit? yes

21 21 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 3 Is counter <= limit? yes "The square of 3 is 9" printed on monitor

22 22 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 4

23 23 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 4 Is counter <= limit? NO!

24 24 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } limit 3 counter 4 Is counter <= limit? NO! “End of demonstration" printed on monitor

25 25 Climbing Stairs Again n Am I at the top of the stairs? n No. n Climb up one step. n Am I at the top of the stairs? n No. n Climb up one step. n Am I at the top of the stairs? n No. n Climb up one step. n Am I at the top of the stairs? n No. n Climb up one step. n...and so on...

26 26 Climbing Stairs Again while (I’m not at the top of the stairs) { Climb up one step } n Climbing stairs is a while loop!

27 27 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter >= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n change termination condition

28 28 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter >= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n change termination condition n body of loop never executed

29 29 Using while Statements public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter >= counter) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n change termination condition n always true

30 30 Infinite Loops public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter >= counter) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } n if termination condition always true, loop never ends n infinite loop goes forever

31 31 Infinite Loops public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter - 1; } System.out.println("End of demonstration"); } n good termination condition n but process never gets closer to condition

32 32 Infinite Loops public class WhileDemo { public static void main (String[] args) { int limit = 9; int counter = 0; while (counter != limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 2; } System.out.println("End of demonstration"); } n process gets closer to termination condition n but never satisfies condition, keeps going past it

33 33 Another while Example public class PrintFactorials { public static void main (String[] args) { int limit = 10; int counter = 1; int product = 1; while (counter <= limit) { System.out.println("The factorial of " + counter + " is " + product’\); counter = counter + 1; product = product * counter; } System.out.println("End of demonstration"); } n accumulate product

34 34 Fun With Loops public class BeerSong { public static void main (String[] args) { int beerNum = 99; String word = "bottles"; while (beerNum > 0) { if (beerNum == 1) { word = "bottle"; } System.out.println(beerNum + " " + word + " of beer on the wall."); System.out.println(beerNum + " " + word + " of beer."); System.out.println("If one of the bottles"); System.out.println("should happen to fall..."); beerNum = beerNum - 1; if (beerNum < 1) { System.out.println("No more bottles of beer on the wall."); }

35 35 Fun With Loops import java.util.Scanner; public class BeerSong2 { public static void main (String[] args) { int beerNum = 99; String word = "bottles"; boolean keepgoing = true; String answer; Scanner in = new Scanner(System.in); while ((beerNum > 0) && keepgoing) { if (beerNum == 1) { word = "bottle"; } System.out.println(beerNum + " " + word + " of beer on the wall."); System.out.println(beerNum + " " + word + " of beer."); System.out.println("If one of the bottles"); System.out.println("should happen to fall..."); beerNum = beerNum - 1;

36 36 Fun With Loops System.out.println("Continue? (y/n): "); answer = in.nextLine(); if (answer.equals("n")) { keepgoing = false; } if (beerNum < 1) { System.out.println("No more bottles of beer on the wall."); }

37 37 public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } Other Loop Statements n Equivalent to...

38 38 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } Other Loop Statements n...this loop using for statement

39 39 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } For Statement n for statement

40 40 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } For Statement n Header has three parts n separated by semicolons

41 41 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } For Statement n Initialization: first part n executed only one time, at beginning

42 42 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } For Statement n boolean expression: second part n evaluated just before loop body, like in while

43 43 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } For Statement n Increment: third part n executed at end of loop body n Despite name, arbitrary calculation allowed n could decrement, for example!

44 44 For Versus While Statement boolean expression statement truefalse boolean expression statement truefalse initialization increment how for statement works how while statement works

45 45 For Versus While Statement boolean expression statement truefalse boolean expression statement truefalse initialization increment how for statement works how while statement works n flowcharts can be somewhat deceptive n need initialization and incrementing/modifying in while loop too n although syntax does not require it in specific spot

46 46 For Versus While Statement n Anything that can be done with one type of loop can be done with another n for and while are equivalent n For statement convenient when n loop should be executed specific number of times n number can be determined before loop starts n While statement convenient when n don't know yet how many times to execute loop body n but can check if it’s time to end loop as you go

47 47 Four Things Needed In Any Loop n Give starting values to one or more variables used in loop test do useful stuff truefalse initialize get closer to termination how loops work in general

48 48 Four Things Needed In Any Loop n Give starting values to one or more variables used in loop n Test to see when looping stops test do useful stuff truefalse initialize get closer to termination how loops work in general

49 49 Four Things Needed In Any Loop n Give starting values to one or more variables used in loop n Test to see when looping stops n One or more useful operations here test do useful stuff truefalse initialize get closer to termination how loops work in general

50 50 Four Things Needed In Any Loop n Give starting values to one or more variables used in loop n Test to see when looping stops n One or more useful operations here n Change something to move process closer termination test do useful stuff truefalse initialize get closer to termination how loops work in general

51 51 public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); } Yet Another Loop Statement n while version

52 52 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } Yet Another Loop Statement n for version

53 53 public class DoDemo { public static void main (String[] args) { int limit = 3; int counter = 1; do { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } while (counter <= limit); System.out.println("End of demonstration"); } Yet Another Loop Statement n do version

54 54 public class DoDemo { public static void main (String[] args) { int limit = 3; int counter = 1; do { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } while (counter <= limit); System.out.println("End of demonstration"); } Do Statement n do version: not quite equivalent n termination test at end, so body executed at least once

55 55 Four Things Needed In Any Loop n Give starting values to one or more variables used in loop n Test to see when looping stops n One or more useful operations here n Change something to move process closer termination test do useful stuff truefalse initialize get closer to termination how loops work in general

56 56 Do Statement n Body always executed at least once test do useful stuff true false initialize get closer to termination order of four things can change, but need them all


Download ppt "University of British Columbia CPSC 111, Intro to Computation 2009W2: Jan-Apr 2010 Tamara Munzner 1 Loops II Lecture 18, Mon Mar 1 2010"

Similar presentations


Ads by Google