CPSC 210
B5: Control Flow
Learning Goals
- Determine the value of a variable
-
Read and trace control flow (method calls, loops, conditionals)
- by hand and by using the debugger
- Represent control flow for a method with flowcharts
- Use conditional statements for conditional control flow
- Use a loop for repeated execution flow
Pod Activity (Do in Groups of 3-5)
- Open the Lecture Lab from B4 - SimpleCalculatorStarterLectureLab
-
Draw the Flow Chart for the processOperations method !
- Note: there is a similarly named processOperation that is different!
Conditionals
public boolean isGreaterThan50(int number) {
if (number > 50) {
return true;
} else {
return false;
}
}
isGreaterThan50(20); // false
isGreaterThan50(60); // true
public int compare(int a, int b) {
if (a == b) {
return 0;
} else if (a < b) {
return -1;
} else {
return 1;
}
}
int z = compare(1, 1); // 0
int y = compare(1, 2); // -1
int x = compare(2, 1); // 1
Loops
void printXTimes(String somethingToPrint, int x) {
for (int i = 0; i < x; i++) {
System.out.println(somethingToPrint);
}
}
printXTimes("Heellooo", 3);
// Heellooo
// Heellooo
// Heellooo
ArrayList<Dog> dogs = new ArrayList<>();
Dog snoopy = new Dog("Snoopy");
Dog oscar = new Dog("Oscar");
Dog paul = new Dog("Paul");
dogs.add(snoopy);
dogs.add(oscar);
dogs.add(paul);
for (Dog dog : dogs) {
System.out.println(dog.getName());
}
// Snoopy
// Oscar
// Paul
int index = 5;
while (index > 2) {
System.out.println(index);
index--;
}
// Now at: 5
// Now at: 4
// Now at: 3
Flow Charts
public void spin() {
System.out.println("Spinning!");
System.out.println("Dizzy...");
}
print "Spinning!"
print "Dizzy..."
End
Start
Flow Charts (2)
public void dance(String songName) {
System.out.println("Dancing to
" + songName + "!");
jump();
spin();
System.out.println("One more time!");
jump();
}
public void jump() {
System.out.println("Jumping!");
}
public void spin() {
System.out.println("Spinning!");
System.out.println("Dizzy...");
}
Start
print "Dancing..."
jump()
spin()
print "One more time!
jump()
End
Flow Charts (3)
public void printNum(int i) {
if (i == 3) {
print("three");
} else {
print("not 3!");
print(i);
}
print("done");
}
if i == 3
print "not 3"
F
T
print "three"
print i
print "done"
End
Start
Flow Charts (4)
public void printList(List<String> theList) {
for (String s : theList) {
print(s);
print("done item "+s);
}
print("done "+theList);
}
Start
for: s in theList
T
F
print "done..."
print "done item"
End
print s
Lecture Ticket Review
public class Person {
private int age;
private String status;
public Person() {
this.status = "young";
this.age = 0;
}
public void getOlderByYears(int years) {
this.age = this.age + years;
if (age > 1) {
status = "old";
}
}
}
public class Main {
public static void main(String[] args) {
Person bubbles = new Person();
Person buttercup = new Person();
Person blossom = new Person();
ArrayList<Person> people = new ArrayList<>();
people.add(bubbles);
people.add(buttercup);
people.add(blossom);
int ageAmount = 1;
for (Person p : people) {
p.getOlderByYears(ageAmount);
ageAmount = ageAmount + 1;
//POINT A
}
//POINT B
}
}
Resource on Flow Charts
Resource on Flow Charts
Resource on Flow Charts
Lecture Lab
We need flow charts for
Tank.handleBoundary
SIGame.moveMissiles
SIGame.checkGameOver
B5: Control Flow
The End - Thank You!
B5 Control Flow
By firas_moosvi
B5 Control Flow
- 78