## `for`
* `for` döngüsü `in` den sonra yazdıÄımız yapının bütün deÄerleri üzerinde dolanıp, eleman sayısı kadar içindeki kodu çalıÅtıracak. x `in` `` yapısı ile tanımlandıÄında, x döngünün her adımında `in` den sonra tanımlanan yapının elemanlarının deÄerlerini alacak.
`for` `` in ``
* `for` döngüsünün en baÅında ``, ``'nin ilk elemanının deÄerini alıyor. İçindeki kod 1 kere çalıÅıp bittikten sonra ikinci kere çalıÅtırıyor ve ``, ``'nin ikinci elemanının deÄerini alıyor. Bu ``'nin tüm elemanları bitene kadar devam ediyor.
```python
for c in "hey":
print(c)
```
h
e
y
```python
toplam = 0
for x in range(101):
toplam += x
print(toplam)
```
5050
```python
for x in range(5):
print(x)
```
0
1
2
3
4
```python
toplam = 1
for i in range(5):
toplam *=5
print(toplam)
```
3125
```python
toplam = 1
for _ in range(5):
toplam *=5
print(toplam)
```
## `for` vs `while`
* `while` yapısında kaç kere iterasyon yapacaÄımızı bilmiyoruz, `for`'da eleman sayısı kadar iterasyon var (`break` veya `continue` ile bölünmezse)
* Aslında `for` döngüsünü `while` döngüsünü kullanarak yazabiliriz, ama `while` döngüsünü `for` kullanarak yazamayız, çünkü `for`'da test mekanizması yok.
```python
s = "hey"
```
```python
for c in s:
print(c)
```
h
e
y
```python
n = len(s)
index = 0
while index < n:
print(s[index])
index += 1
```
h
e
y