Bu dersin sonunda, zaten var olan bir şeyi düzenlemekle kalmayıp gerçekten basit kod yazmaya başlama şansına sahip olacaksın!
Ama önce biraz daha bilgi...
İyi Programcılar (Hatırlamak Yerine) Ne Yapar
Deneyimli bir programcı, kodunda aslında programın bir parçası olmayan, ancak ne yaptığı veya neden yaptığı konusunda açıklamalar içeren notlara yer verir. Program çalıştığında bu açıklamalar dikkate alınmaz, ancak programcının kod açıklamaları kodda kalır.
Kod Açıklamaları
Kod açıklamaları yazmak genel olarak iyi bir uygulamadır, ancak programlamaya yeni başlayıp, bir şeyleri ilerledikçe daha iyi anlarken özellikle faydalıdır. Bu açıklamalar, sen (veya başka biri) bir şeyi neden yaptığını anlamaya çalıştığında gerçekten yararlı olabilir.
Bir kod açıklaması yazmanın en basit yolu, açıklamanın önüne bir # koymaktır, ancak bunu yapmanın başka yolları da vardır:
|
tek satırlı açıklama: # ile satır sonu arasında görünen her şey kod açıklamasına dahildir. |
|
satır içi blok açıklama: <# ile #> arasında görünen her şey kod açıklamasına dahildir. Satır içi blok açıklamalar, tek bir satırdaki ifadeler arasında olabilir ve ifadeleri değiştirmez. |
|
çok satırlı blok açıklama: <# ile #> arasında görünen her şey kod açıklamasına dahildir. Çok satırlı blok açıklamalar birden çok satıra yayılabilir. |
|
iç içe yerleştirilmiş blok açıklama: <# ile #> arasında görünen her şey kod açıklamasına dahildir ve iç içe geçebilir. Bu özellik, mevcut bir kod açıklamasını değiştirmeden test etme ve hata ayıklama için bir satırdaki bazı ifadeleri açıklamak istiyorsan faydalı olabilir. |
|
girintili açıklama: <#> ifadesinden sonra yeni satırlarda görünen ve dört boşluk girintili olan her şey kod açıklamasına dahildir. Dört boşluk girintili olmayan ilk satır, kod açıklamasının bir parçası değildir ve kod açıklamasını sonlandırır. |
Kodda Karar Vermek için Koşulluları Kullanma
2. Ders’te gördüğün if .. else ifadelerini hatırlıyor musun? Bunlar koşullu ifade olarak adlandırılır.
Koşullu ifadeler veya kısaca koşullular, programına nasıl karar vereceğini söylediğin talimatlardır.
if ifadesi, bir şeyin başarılı mı yoksa başarısız mı olduğunu test eder. Belirli bir kod, başarılı olması halinde çalıştırılabilir. Başarısız olursa onun yerine başka bir kod çalışacaktır.
Bunu, programına, cevabı yalnızca evet ya da hayır olabilecek bir soru sormanın bir yolu olarak da düşünebilirsin.
Gerçek hayatta her zaman evet - hayır sorularına vereceğin cevaba göre kararlar alırsın. Örneğin, yorgun musun? Cevap evetse (if) uyursun. Cevap hayırsa (else) oturup çizgi film izlersin.
Bu davranışı programlayacak olsan şöyle görünebilirdi:
var Tired: logic = false
var WhatToWatch: string = "hiçbir şey"
if (Tired?):
set WhatToWatch = "your eyelids"
else:
set WhatToWatch = "cartoons"
Print("{WhatToWatch} izlemelisin")
# Çizgi film izlemelisin
if ifadesindeki ? soru işaretini fark ettin mi? Bir Verse programı, bir logic türünün true mu yoksa false mu olduğunu bu şekilde kontrol eder.
İç içe yerleştirme
Kodun iç içe yerleştirilmesi, if veya else gibi bir anahtar sözcük ifadesinin altında girintili şekilde bulunduğu anlamına gelir. Bu ifadeler yeni bir kapsam oluşturur.
Kapsam, adların ve ilişkili değerlerinin kullanılabileceği bir kod öbeğini ifade eder. Kapsam, girintili bir kod bloğu içinde yer alır.
Örneğin:
if (Tired?):
set WhatToWatch = "your eyelids"
else:
set WhatToWatch = "cartoons"
set WhatToWatch = "your eyelids” satırı if (Tired?): satırının altında girintilidir. Aynı kalıp else:` satırı için de tekrarlanır.
Tek satırlık bir kodu veya bir kod bloğunu (çok satırlı) iç içe yerleştirebilirsin.
Kod çalıştığında iç içe yerleştirilmiş kod, yalnızca altına yerleştirildiği kodun bağlamında yürütülür.
Birden Fazla Koşul Kullanma
Bazen bir karar vermeden önce birden fazla soru sorman gerekir. Verse’te bu işlem, and ve or işleçleriyle yapılır. Bu işleçler, karar işleçleri olarak adlandırılır.
and kullanıldığında, tüm ifadenin başarılı olması için işlecin her iki tarafındaki koşulların doğru (true) veya başarılı olması gerekir.
or kullanıldığında ise tüm ifadenin başarılı olması için yalnızca bir koşulun doğru (true) veya başarılı olması gerekir.
| Birinci Koşul | İşleç | İkinci Koşul | Tüm İfade |
|---|---|---|---|
| başarılı | ve | başarılı | başarılı |
| başarılı | ve | başarısız | başarısız |
| başarısız | veya | başarısız | başarısız |
| başarılı | veya | başarılı | başarılı |
| başarılı | veya | başarısız | başarılı |
| başarısız | veya | başarısız | başarısız |
Bu işleçlerin nasıl çalıştığını görmek için kodu değiştirelim.
Yorgun olmasan bile yarın okul varsa uyumak iyi bir fikir olabilir. Her iki logic değişkenini kontrol etmek için SchoolTomorrow adında bir değişken oluşturarak ve or kullanarak bunu kontrol edelim.
var Tired: logic = false
var SchoolTomorrow: logic = true
var WhatToWatch: string = "hiçbir şey"
if (Tired? or SchoolTomorrow?):
set WhatToWatch = "your eyelids"
else:
set WhatToWatch = "cartoons"
Print("{WhatToWatch} izlemelisin")
# Çizgi film yerine gözkapaklarını izlemelisin
Tired, false olarak ayarlanmış olsa dahi SchoolTomorrow, true olarak ayarlandığından tüm ifade başarılı olur ve WhatToWatch, "gözkapaklarını" olarak ayarlanır.
Birden fazla koşulu kontrol etmenin başka bir yolu da vardır.
if ... else if ... else kullanmak, kontrol ettiğin şeyleri sıraya koyar. Buna göre, ilk koşulu kontrol edersen bir sonraki koşulu yalnızca önceki koşul başarısız olursa kontrol etmen gerekir.
Ya yarın okul yoksa ve yorgun değilsen? Arkadaşlarınla sinemaya gitmek isteyebilirsin. Bunun nasıl çalıştığını görmek için kodu bir kez daha değiştirelim.
SchoolTomorrow değişkeninin değerini güncelle ve FriendsAvailable adlı yeni bir değişken bildir.
var FriendsAvailable : logic = true
set SchoolTomorrow = false
Daha sonra, yorgun değilsen veya yarın okul yoksa arkadaşlarının müsait olup olmadığını kontrol etmek için kodu güncelle.
if (Tired? or SchoolTomorrow?):
set WhatToWatch = "your eyelids"
else if (FriendsAvailable?):
set WhatToWatch = "a movie with your friends"
else:
set WhatToWatch = "cartoons"
Mükemmel! Şimdi yalnızca yorgunsan veya yarın okul varsa uyuyacaksın. Sorulardan herhangi birinin cevabı hayırsa ya arkadaşlarınla film izleyeceksin ya da arkadaşların müsait değilse evde oturup çizgi film izleyeceksin.
Verse sayesinde akşam için plan yapmak artık çok daha kolay!
Sorun Giderme
1. Ders’te öğrendiğin derleyici hatalarını hatırlıyor musun?
Kod yazarken karşılaşabileceğin, bug adı da verilen başka hatalar da vardır.
Hatalar
Hata (bug), bir bilgisayar programında yer alan ve programın yanlış veya beklenmeyen bir sonuç üretmesine neden olan bir yanlışlıktır. Bir hata, bir mesajdaki metnin rengini değiştirmek gibi basit bir şeye de sebep olabilir, bir mesajı ekrana yanlış zamanda göndermek ya da programın çökmesine sebep olmak gibi çok daha ciddi şeylere de sebep olabilir.
İngilizce karşılığı “bug” (böcek) olan hata terimi, bilgisayar biliminin öncülerinden Grace Hopper’ın bir bilgisayarda güve bulması ve bunu el yazısıyla “Bir böcek (bug) bulunmasına dair ilk gerçek vaka” şeklinde bir açıklamayla sorun giderme günlüğüne kaydetmesiyle popüler hale gelmiştir.
Derleyici hataları bir programın derlenmesini engellese de bir bug’lar, program çalışana kadar görünmeyecektir.
Hataları belirleme ve düzeltme işlemine hata ayıklama, hataları bulmaya yardımcı olan bir araca da hata ayıklayıcı denir.
Özet
- Kodu neden belirli bir şekilde yazdığını hatırlamak ve diğer programcıların neyi neden yaptığını anlamalarına yardımcı olmak için kod açıklamalarını kullan.
- Program boyunca sabit kalması gereken değerler için sabitleri kullan.
- Girdiye göre değişmesi gereken değerler için değişkenleri kullan.
- Bug’lar ile derleme hataları, koddaki yanlışlıklardan kaynaklanır.