# teaching machines

## CS 145 Lecture 9 – Loops: for and while

February 22, 2012 by . Filed under cs145, lectures, spring 2012.

### Agenda

• exam coming up!
• for loop problems
• digitizing a circle
• for (INIT; TEST; UPDATE) {
ACTION
}
• INIT
while (TEST) {
ACTION
UPDATE
}
• while loop problems
• summing an indefinite number of numbers
• checking for repeated words
• decomposing a comma-separated list
• prompting for an actual file

### Testing pattern

For non-real primitives:

System.out.println(EXPECTED == ACTUAL);
System.out.println(2 == getParentCount()); // for example

For float and double:

System.out.println(Utilities.equalsEnough(EXPECTED, ACTUAL));
System.out.println(Utilities.equalsEnough(3.14159, getPi()); // for example

For objects:

System.out.println(ACTUAL.equals(EXPECTED));
System.out.println(sortedVowels.equals("aeiou")); // for example

### Code

#### MoreFor.java

package preexam1;

public class MoreFor {
public static void main(String[] args) {
fillDown(3, 1, 10);
//    makeCircle(10);
}

public static void fillDown(int first, int second, int n) {
int diff = second - first;

for (int i = 0; i < n; ++i) {
System.out.println(first + diff * i);
}

System.out.println("------------");

for (int i = first; i < first + diff * n; i += diff) {
System.out.println(i);
}
}

public static void makeCircle(int n) {
double jump = 360.0 / n;

for (int i = 0; i < n; ++i) {
// System.out.println(i);

double theta = i * jump;

System.out.println(x + "," + y);
}
}
}


#### While.java

package preexam1;

import java.util.Scanner;

public class While {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);

int sum = 0;

while (in.hasNextInt()) {
int i = in.nextInt();
sum += i;
}

System.out.println(sum);

String team = "Joel,John,Patrick,Brian,Phil,Michael";
Scanner teamParser = new Scanner(team);
teamParser.useDelimiter(",");

int i = 1;
while (teamParser.hasNext()) {
String member = teamParser.next();
System.out.println(i + ". " + member);
i++;
}
}
}

### Haiku

Life can feel loopish.
Wake, eat, class, eat, work, eat, sleep…
You need some Random.