# Übungen Schleifen
## Zusammenfassung
```js
for(var i = 1; i <= 8; i=i + 1) {
alert(i)
}
```
## Aufgaben
### Zahlen
* Schreibe ein Programm, das die ersten 10 Zahlen nacheinander anzeigt.
### Dreierreihe
* Schreibe ein Programm, das die Zahlen der Dreierreihe bis 42 anzeigt.
### Beliebige Reihe
* Schreibe ein Programm, das den Besucher nach einer Zahl fragt und dann diese
Reihe anzeigt (z.B. Dreierreihe für Eingabe 3). Es soll die ersten 10 Zahlen der
Reihe anzeigen.
### Treppe
Die Aufgabe ist auf [dieser Seite](exercise03_stairs.html) beschrieben.

### Quadrat im Quadrat
Die Aufgabe zu den geschachtelten Quadraten sind auf [dieser Seite](exercise03_quadrat.html).


### FizzBuzz
* Schreibe ein Programm, das durch die ersten 20 ganzen Zahlen durchläuft und jeweils
* "Fizz" anzeigt, wenn die Zahl durch 3 teilbar ist
* "Buzz" anzeigt, wenn die Zahl durch 5 teilbar ist
* "FizzBuzz" anzeigt, wenn die Zahl durch 3 und 5 teilbar ist
* Die Zahl selber anzeigt, wenn sie weder durch 3 noch durch 5 teilbar ist
Um zu testen, ob Zahl `a` durch die Zahl `b` teilbar ist, kannst du den Modulo-Operator `%` verwenden. Dieser
Operator berechnet den Rest einer Division. `5 % 3` ergibt beispielsweise 2, weil der Rest von `5 / 3` gerade 2 ist.
Wenn der Rest von `a % b` gerade 0 ist, ist a durch b teilbar (z.B. `8 % 4` gibt 0).
Das heisst, wenn `if(x % 3 == 0)`, dann ist `x` durch 3 teilbar.
### Summe
* Schreibe ein Programm, das die Summe der ersten 20 Zahlen berechnet (1 + 2 + ... + 20). Zur Kontrolle: das Resultat sollte 210 sein.
### Summe 2
* Verändere das vordere Programm so, dass du die Anzahl Zahlen, die addiert werden, über ein Prompt-Fenster
eingeben kannst.
### Rückwärts
* Schreibe ein Programm, das von 10 aus rückwärts bis Null zählt und jeweils die Zahlen anzeigt.
### Summe der Quadrate vs. Quadrat der Summe
* Die Summe der Quadrate der ersten 10 Zahlen ist 385 (1^2 + 2^2 + ... + 10^2). Das Quadrat der Summe der ersten
10 natürlichen Zahlen ist 3025 (1 + 2 + ... + 10)^2. Finde diese beiden Zahlen für die ersten 100 natürlichen Zahlen.
**Tipp**: Wenn du nicht 100 `alert()`-Fenster nacheinander öffnen willst, kannst du statt `alert(x)` auch
`console.log(x)` verwenden. Der Wert, den du an `console.log()` übergibst, wird dann in der Konsole statt in einer
Nachrichtenbox angezeigt.
### Summe 3
Schreibe ein Programm, das dich nach einer Zahl fragt und dich dann so viele male mit einem Prompt-Fenster nach
weiteren Zahlen fragt und danach die Summe davon ausrechnet. Beispiel: Eingabe von 3 fragt nach 3 Zahlen und rechnet
deren Summe aus.
### Multiplikationstabelle
Schreibe ein Programm, das in der Konsole eine Multiplikationstabelle anzeigt.
### Spirale
Die Aufgabe ist auf [dieser Seite](exercise03_helix.html).

## Lösungen
### Zahlen
```js
for(var i = 1; i <= 10; i = i + 1) {
alert(i)
}
```
### Dreierreihe
```js
for(var i = 0; i <= 42; i = i + 3) {
alert(i)
}
```
### Beliebige Reihe
```js
var reihe = Number(prompt("Welche Reihe?"))
for(var i = 0; i <= 10*reihe; i = i + reihe) {
alert(i)
}
```
### Treppe
```js
for(var i = 1; i <= 15; i = i + 1) {
up()
right()
}
```
### Quadrat im Quadrat
a.)
```js
for(var i = 1; i <= 10; i = i + 1) {
var breite = i * 20
right(breite)
up(breite)
left(breite)
down(breite)
}
```
b.)
```js
for(var i = 1; i <= 10; i = i + 1) {
var breite = i * 20
goTo( -breite / 2, -breite / 2)
right(breite)
up(breite)
left(breite)
down(breite)
}
```
### FizzBuzz
```js
for(var i = 1; i <= 20; i = i + 1) {
if(i % 3 == 0 && i % 5 == 0) {
alert("FizzBuzz")
} else if(i % 3 == 0) {
alert("Fizz")
} else if(i % 5 == 0) {
alert("Buzz")
} else {
alert(i)
}
}
```
### Summe
```js
var summe = 0
for(var i = 1; i <= 20; i = i + 1) {
summe = summe + i
}
alert(summe)
```
### Summe 2
```js
var ende = Number(prompt("Anzahl?"))
var summe = 0
for(var i = 1; i <= ende; i = i + 1) {
summe = summe + i
}
alert(summe)
```
### Rückwärts
```js
for(var i = 10; i >= 0; i = i - 1) {
alert(i)
}
```
### Summe der Quadrate vs. Quadrat der Summe
```js
var summe = 0
for(var i = 0; i < 100; i = i + 1) {
summe = summe + i}
alert("Quadrat der Summe: " + (summe * summe))
var summe2 = 0
for(var i = 0; i < 100; i = i + 1) {
summe2 = summe2 + (i * i); // entspricht i^2
}
alert("Summe der Quadrate: " + summe2)```
### Summe 3
```js
var anzahl = prompt("Anzahl Zahlen?")
var summe = 0
for(var i = 1; i <= anzahl; i = i + 1) {
var zahl = prompt('Zahl?')
summe = summe + zahl
}
alert(summe)
```
### Multiplikationstabelle
```js
for(var i = 1; i <= 10; i = i + 1) {
var zeile = ''
for(var j = 1; j <= 10; j = j + 1) {
zeile = zeile + ' ' + i * j
}
console.log(zeile)
}
```
### Spirale
```js
for(var i = 1; i <= 20; i = i + 1) {
var breite = i * 10
if (i % 2 == 0){
up(breite)
left(breite)
} else {
down(breite)
right(breite)
}
}
```