# # 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")  
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://derslik.kerteriz.net/go/temel-dersler/go-kosul-durumlari.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
