Presentation is loading. Please wait.

Presentation is loading. Please wait.

Overview of Loops.

Similar presentations


Presentation on theme: "Overview of Loops."— Presentation transcript:

1 Overview of Loops

2 End of File Loop while (infile.hasNext()) // true if more unread data on file { score = infile.nextInt(); // now input is at beginning of loop // actions }

3 Sentinel-controlled Loop
Sop (“Enter a score (-1 to quit)”); score = kb.nextInt(); // “priming” read while (score != -1) // sentinel value is -1 { // actions Sop (“Enter another score (-1 to quit)); score = kb.nextInt(); // remember to read another value at end of loop }

4 Count-controlled Loops
int i = 1; // initialization while (i <= 10) // test { Sop ("i = " + i); // action(s) . i++; // increment } for ( int i=1; i<=10; i++ ) { Sop ("i = " + i); // action(s) . }

5 When to use while vs for? while for
When you don’t know ahead of time how many times something needs to happen When you do know ahead of time how many times something needs to happen Note: could use while in this situation but most programmers prefer for

6 We have 3 files that contain a list of golf scores that we want to average.
golf1.txt 78 65 82 70 91 88 75 68 golf2.txt 78 65 82 70 91 88 75 68 -1 golf3.txt 8 78 65 82 70 91 88 75 68 File has scores only File has sentinel value First number in file tells us number of scores on file

7 golf1.txt (has scores only) – use an “end of file loop”
int score; int total = 0; int numScores = 0; double avg; while (infile.hasNext()) { score = infile.nextInt(); total = total + score; numScores++; } avg = (double) total / numScores; SOP (avg); golf1.txt 78 65 82 70 91 88 75 68

8 golf2.txt (has sentinel value) – use a “sentinel-controlled loop”
78 65 82 70 91 88 75 68 -1 int score; int total = 0; int numScores = 0; double avg; score = infile.nextInt(); while (score != -1) { total = total + score; numScores++; } avg = (double) total / numScores; SOP (avg);

9 golf3.txt (has number of scores at beginning of file) version 1 – use a “count-controlled” while loop golf3.txt 8 78 65 82 70 91 88 75 68 int score; int total = 0; int numScores; double avg; int count = 0; numScores = infile.nextInt(); while (count < numScores) { score = infile.nextInt(); total = total + score; count++; } avg = (double) total / numScores; SOP (avg);

10 golf3.txt (has number of scores at beginning of file) version 2 – use a “count-controlled” for loop
8 78 65 82 70 91 88 75 68 int score; int total = 0; int numScores; double avg; numScores = infile.nextInt(); for (int i=0; i < numScores; i++) { score = infile.nextInt(); total = total + score; } avg = (double) total / numScores; SOP (avg);


Download ppt "Overview of Loops."

Similar presentations


Ads by Google