7 The For Loop
7 The For Loop
7 The For Loop
int x = 2;
x++; // x = x + 1;
// x now stores 3
double gpa = 2.5;
gpa--; // gpa = gpa - 1;
// gpa now stores 1.5
Modify-and-assign
shortcuts to modify a variable's value
x += 3; // x = x + 3;
gpa -= 0.5; // gpa = gpa - 0.5;
number *= 2; // number = number * 2;
Count up
• Make a loop count up from 1 to 10 with only 1 system.out.
Using a for statement (loop should repeat 10 times)
• Output Should look like
Start:
1 for (int i = 1; i <= 6; i++) {
System.out.println(“Sample syntax for
2 a loop");
3 }
4
5
6
7
8
9
10
End.
Count up answer
• The update can use -- to make the loop count down.
• The test must say > instead of <
System.out.print(“Start ");
for (int i = 1; i >= 10; i++) {
System.out.print(i);
}
System.out.println(“End.");
• Output:
T-minus 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, blastoff!
The end.
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"
2
Output:
1 squared = 1 4
2 squared = 4
3 squared = 9 3
4 squared = 16
5
Whoo!
Multi-line loop body
System.out.println("+----+");
for (int i = 1; i <= 3; i++) {
System.out.println("\\ /");
System.out.println("/ \\");
}
System.out.println("+----+");
• Output:
+----+
\ /
/ \
\ /
/ \
\ /
/ \
+----+
Expressions for counter
int highTemp = 5;
for (int i = -3; i <= highTemp / 2; i++) {
System.out.println(i * 1.8 + 32);
}
• Output:
26.6
28.4
30.2
32.0
33.8
35.6
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 * 1.8 + 32) + " ");
}
• Output:
26.6 28.4 30.2 32.0 33.8 35.6
• Output:
T-minus 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, blastoff!
The end.
Counting down answer
• The update can use -- to make the loop count down.
• The test must say > instead of <
System.out.print("T-minus ");
for (int i = 10; i >= 1; i--) {
System.out.print(i + ", ");
}
System.out.println("blastoff!");
System.out.println("The end.");
• Output:
T-minus 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, blastoff!
The end.
Nested for loops
How would we create this?
• Output:
**********
**********
**********
**********
**********
We know how to do this
* same as 1
* just with 2
* a character 3
* 4
* 5
Output:
**********
**********
**********
**********
**********
• Output:
**********
**********
**********
**********
**********
• Output:
*
**
***
****
*****
Nested for loop exercise
• What is the output of the following nested for loops?
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i);
}
System.out.println();
}
• Output:
1
22
333
4444
55555
Common errors
• Both of the following sets of code produce infinite loops:
for (int i = 1; i <= 5; i++) {
for (int j = 1; i <= 10; j++) {
System.out.print("*");
}
System.out.println();
}