Lernzielkontrolle Info10 - 2: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
− | '''Aufgabe 1 | + | '''Aufgabe 1''' |
Was tun folgende Schleifen? | Was tun folgende Schleifen? | ||
Zeile 33: | Zeile 33: | ||
{{Lösung versteckt| | {{Lösung versteckt| | ||
Gibt 3x hintereinander "''zickezacke zickezacke hoihoihoi ''" aus. | Gibt 3x hintereinander "''zickezacke zickezacke hoihoihoi ''" aus. | ||
+ | }} | ||
+ | |||
+ | |||
+ | '''Aufgabe 2''' | ||
+ | |||
+ | |||
+ | |||
+ | '''Aufgabe3''' | ||
+ | |||
+ | Warum sind folgende Schleifen problematisch? | ||
+ | |||
+ | '''1)''' | ||
+ | |||
+ | int i=100; while(i<=1){ System.out.println("Ich bin noch nicht fertig!"); i++;} | ||
+ | |||
+ | {{Lösung versteckt| | ||
+ | Die Schleife wird gar nicht ausgeführt, da die Abbruchbedingung bereits bei der ersten Überprüfung greift (100<=1 ergibt ''false''). | ||
+ | }} | ||
+ | |||
+ | '''2)''' | ||
+ | |||
+ | for(int i=2; i<=20; i+=2){ if (i%2==0){i=i-2;};} | ||
+ | |||
+ | {{Lösung versteckt| | ||
+ | Wir haben hier eine Endlosschleife: i ist immer durch 2 teilbar und so wird die Anweisung im Rumpf (i=i-2) immer ausgeführt. Diese Anweisung neutralisiert aber die Änderung der Zählvariable (i+=2). | ||
+ | }} | ||
+ | |||
+ | '''3)''' | ||
+ | |||
+ | int i=1; while(i<=10){System.out.println("Einer geht noch ...");} | ||
+ | |||
+ | {{Lösung versteckt| | ||
+ | Auch hier haben wir eine Endlosschleife: Da die Schleife keine Inkrementierung (''i++'') besitzt, läuft sie ewig, weil sie die Abbruchbedingung nie erreichen kann. | ||
}} | }} |
Version vom 19. November 2014, 18:09 Uhr
Aufgabe 1
Was tun folgende Schleifen?
1)
int y=1; for(int i=3; i<=300; i+=3){y=y*i;}
Berechnet das Produkt der ersten hundert Vielfachen von 3.
2)
int i=1; while(true){ if (i>=1){System.out.print(i); i++; if (i<=2){System.out.print(i);};}
Gibt in Endlosschleife die Folge 1212121212.... aus.
3)
for(int i=1; i<=500; i++){ if (i%9==0){System.out.println(i);};}
Gibt die Vielfachen von 9 bis 500 aus.
4)
int i=1; while(i>=9){ if (i%3==0){System.out.print("hoihoihoi ")} else {System.out.print("zickezacke ");};
Gibt 3x hintereinander "zickezacke zickezacke hoihoihoi " aus.
Aufgabe 2
Aufgabe3
Warum sind folgende Schleifen problematisch?
1)
int i=100; while(i<=1){ System.out.println("Ich bin noch nicht fertig!"); i++;}
2)
for(int i=2; i<=20; i+=2){ if (i%2==0){i=i-2;};}
3)
int i=1; while(i<=10){System.out.println("Einer geht noch ...");}
Auch hier haben wir eine Endlosschleife: Da die Schleife keine Inkrementierung (i++) besitzt, läuft sie ewig, weil sie die Abbruchbedingung nie erreichen kann.