If Else Statement

if-else ifadeleri iki ya da daha fazla seçenekli şarta bağlı durumun olduğu olay yapılarında, programın işleyişini bu kollarda şarta uyan koldaki ifadeler ile devam edilmesini sağlamak amacıyla ortaya çıkarılmış ifadelerdir.

Bu ifadeler verilen değerin sağlandığı durumda true ve sağlanmadığı durumda false değeri verilecek şekilde düzenlenmiştir.


func main(){
	var (
		Temperature int = 42
	)

	if Temperature >= 30 {
		fmt.Println("Çok sıcak!")
	} else {
		fmt.Println("Serin")
	}
}

ifademizde Temperature isimli bir değişkenimiz mevcuttur. Bu değişkenin sayısal değeri 42'dir. conditional statement ifademiz olan if {} else {} bloklarında iki farklı şarta bağlı ifademiz mevcuttur.

İlk şartımız:


	if Temperature >= 30 {
		fmt.Println("Çok sıcak!")
	}

şeklindedir. Eğer Temperature değişkeni 30 dereceye eşit ya da daha büyükse bu scope içinde kalan işlemleri gerçekleştir.Eğer ifademiz 30 değerinin altında olsaydı else bloğundaki ifadeleri gerçekleştirirdi:


else {
  fmt.Println("Serin")
}

else if ifadeleri

Bu ifadeler genellikle birden çok seçeneği opsiyonel olarak seçmek amacıyla yazılırlar. Standart if else ifadelerinden farklı olarak, şartın ilk yakalandığı noktada seçim işlemi sonlanır.

Üniversite notlama sistemi örneği ile bunu açıklamak gerekirse:


AA: 90 - 100 / Başarılı
BA: 80 - 89 / Başarılı
BB: 75 - 79 / Başarılı
CB: 70 - 74 / Başarılı
CC: 60 - 69 / Başarılı
DC: 50 - 59 / Koşullu Başarılı - Başarısız
DD: 40 - 49 / Başarısız
FD: 30 - 39 / Başarısız
FF: 0 - 29 / Başarısız

Şimdi bunu programımıza yazalım



func main() {
	// AA: 90 - 100 / Başarılı
	// BA: 80 - 89 / Başarılı
	// BB: 75 - 79 / Başarılı
	// CB: 70 - 74 / Başarılı
	// CC: 60 - 69 / Başarılı
	// DC: 50 - 59 / Koşullu Başarılı - Başarısız
	// DD: 40 - 49 / Başarısız
	// FD: 30 - 39 / Başarısız
	// FF: 0 - 29 / Başarısız

	ogrenciNotu := 62

	fmt.Println("ogrenciNotu: ", ogrenciNotu)

	if ogrenciNotu >= 50 && ogrenciNotu <= 59 {
		fmt.Println("DC - Koşullu Başarılı")
	} else if ogrenciNotu >= 60 && ogrenciNotu <= 69 {
		fmt.Println("CC - Başarılı")
	} else if ogrenciNotu >= 70 && ogrenciNotu <= 74 {
		fmt.Println("CB - Başarılı")
	}

e}

Bu ifadeyi çalıştırdığımız anda aşağıdaki çıktıyı alırız :

ogrenciNotu:  62
CC - Başarılı

ifademizde ilk kol olan öğrencinin notu 50'den büyük ise ve ogrenci notu 59'dan kucuk ve eşit ise bu koldaki işlemi gerçekleştir ibaresi işledi ve 59'dan büyük olduğu için bir sonraki koldaki şart sınanmaya başladı:


if ogrenciNotu >= 50 && ogrenciNotu <= 59 {
		fmt.Println("DC - Koşullu Başarılı")
	}

İkinci koldaki ifade olan öğrencinin notu 60'dan büyük ya da eşit ise ve ogrencinin notu 69'dan kucuk ise bu koldaki işlemi gerçekleştir şartı sınandı ve not 62 olduğundan dolayı buradaki fmt.Println() ifadesindeki değer ekranda görüntülendi. else if ifadelerinde mevcut şart sağlandığında kodun çalışması ifadenin sağlandığı scope içinde sonlanır. Böylece bir sonraki scope içindeki şart işleme tabi olmaz. Yani ogrencinin notu 70'den büyük ve 74'ten kucuk eşit ise bu koldaki işlemi gerçekleştir ibaresi çalıştırılmadan işlem sonlanır.