> For the complete documentation index, see [llms.txt](https://derslik.kerteriz.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://derslik.kerteriz.net/go/temel-dersler/go-kosul-durumlari.md).

# # Go Koşul Durumları

Bilgisayar teknolojilerinin temelinde nasıl ki 0 ve 1 durumları varsa programlama dillerinin de temelinde algoritmaları oluşturan `if` ve `else` durumları vardır. Bu dersimizde de önemli bir aşama olan if..else konusunu anlatacağız.&#x20;

Koşul ifadeleri programımızda durumları kontrol etmemizi ve programlamanın seyrini değiştirmeye yarar. **`if`** , **`else`** ve **`else if`** terimleriyle mantıksal ifadeleri kullanarak bir durumun koşulu sağlaması durumunda çalışmasını gerçekleştirebiliriz.

```go
a := 25 
b := 50

if b > a {
    fmt.Println("b büyüktür a dan")
}
```

Örnekte gördüğünüz gibi eğer `b > a` koşulu doğruysa program if durumunun içine girer ve ekrana metni yazdırır.

{% hint style="info" %}
Koşul durumlarında **==** , **!=** , **<** , **<=** , **>** , **>=** ifadelerini kullanabilirsiniz.
{% endhint %}

Eğer **if** koşulunun gerçekleşmediği durumda başka bir durumun gerçekleşmesini istiyorsak bunu **else** terimi ile gerçekleştirebiliriz.

{% tabs %}
{% tab title="Doğru Kullanım" %}

```python
sayi := 3

if sayi % 2 == 0{
    fmt.Println(sayi , "çift sayıdır")
} else{
    fmt.Println(sayi , "tek sayıdır")
}
```

{% endtab %}

{% tab title="Yanlış Kullanım" %}

```go
sayi := 3

if sayi % 2 == 0{
    fmt.Println(sayi , "çift sayıdır")
} 
else{
    fmt.Println(sayi , "tek sayıdır")
}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**`else`** komutu, **`if`** komutu süslü parantezinin bittiği satıra yazılmalıdır. Aksi halde Syntax hatası alırsınız.
{% endhint %}

Bu örnekte 3 sayısının tek mi çift sayı olduğunu kontrol ediyoruz. Eğer sayımız çift ise if durumu, değilse else durumu çalışacaktır. Programımızda yeri geldiğinde birden fazla durumu kontrol etmek durumunda kalabiliriz. Bunun içinde Python programlama dilinde **else if** terimi devreye girer.

```python
yas := 65

if yas < 18 {
    fmt.Println("Ergensiniz")
} else if yas >= 18 && yas < 66 {
    fmt.Println("Gençsiniz")
} else if yas >= 66 && yas < 79 {
    fmt.Println("Orta yaşlısınız")
} else if yas >= 80 && yas < 100 {
    fmt.Println("Yaşlısınız")
} else {
    fmt.Println("Yaş grubunuzu belirleyemedik!")
}
```

Örnekte olduğu gibi artık sadece **if** ve **else** ile kalmadık ve ara durum koşullarını da **elif** ile kullandık.

## 1. İç İçe If Else Kullanımı

Koşullarınızı yazarken iç içe if ve else koşullarınızı yazarak daha detaylı koşul durumları oluşturabiliriz.

```python
x := 41

if x > 10 {
  fmt.Println("Sayı ondan büyük")
  if x > 20 {
    fmt.Println("Sayı yirmiden büyük")
  } else {
    fmt.Println("Sayı yirmiden küçük")  
  }
}
```
