Nyckelord: While-loopen, For-loopen
Utskrifter i loopar
Nedan visas ett program som skriver ut värden inuti olika loopar. Vad blir utskriften?
public class Uppgift7 {
public static void main(String[] args) {
// a
int n = 0;
boolean done = false;
while (!done) {
done = n++ > 10;
System.out.println(n);
}
// b
int k = 2078670162;
while (k > 0) {
System.out.println(k);
k = k / 10;
}
// c
for (int i = 0; i < 10; i+=2) {
for (int j = 0; j < i; j++){
System.out.println(j);
}
System.out.println();
}
}
}
Ledtråd
Fundera över hur variablerna förändras varje iteration av loopen. Exempelvis:
i++; // Ökar med 1
j+=2; // Ökar med 2
Svar
A: Förklaring
1
2
3
4
5
6
7
8
9
10
11
12
Operationen n++ ökar variabeln n med 1. Observera att jämförelsen görs först, sedan ökar n med 1. Missa därför inte att även 12 skrivs ut, eftersom programmet först kommer kontrollera 11 > 10 (vilket är sant), sedan öka n från 11 till 12 och skriva ut resultatet.
Om det istället hade stått ++n istället för n++, hade programmet först ökat n med 1, sedan gjort jämförelsen.
B: Förklaring
2078670162
207867016
20786701
2078670
207867
20786
2078
207
20
2
Programmet skriver ut värdet på variabeln k och delar sedan talet med 10. Eftersom k är en integer, kommer decimaltalet kapas av.
C: Förklaring
0
1
0
1
2
3
0
1
2
3
4
5
0
1
2
3
4
5
6
7
Första iterationen av loopen kommer vi inte gå in i den inre loopen. Sedan ökar i med 2 varje iteration. Den inre loopen skriver ut värdet på j som ökar med 1 tills dess att i < j.