if
(
puan
>=
50
)
{
console
.
log
(
"Gectiniz"
)
;
}
else
{
console
.
log
(
"Kaldiniz"
)
;
}
if-else
— Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı backend kodunun bir parçasıdır; ilgili girdiyi alır, dönüştürür ve sonraki adıma aktarır.
Öğretmen açıklaması
Bu adımı hiç bilmeyen biri için okuyalım: Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı, sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması içinde bu örneğin ilgili görevini üstlenir. Satırın rolü: Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı satırının backend görevi. Sözdizimi açısından Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı backend kodunun bir parçasıdır; ilgili girdiyi alır, dönüştürür ve sonraki adıma aktarır. Çalışma sırasında backend çalışma zamanı bu kod parçasını işler ve sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması için sonraki adıma taşınacak ara sonucu üretir. Gözlenebilir ara sonuç şudur: Bu adımın sonunda Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı için gerekli ara durum oluşur; işlenmiş veri, terminal çıktısı veya istemciye dönen backend yanıtı gözlemlenebilir hale gelir. Bir sonraki satır bu sonucu kullanır. Kod parçaları: if (puan >= 50) { console.log("Gectiniz"); } else { console.log("Kaldiniz"); }: Bu satır backend akışının bir parçasını yürütür. Bu satırın neden burada olduğunu anlamak için girdiyi ve bir sonraki satıra taşınan değeri birlikte kontrol edin.
- Önce Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı parçasının hangi girdiyi aldığını ve Kosullu Ifadeler (if-else, switch, ternary) içindeki görevini söyleyin.
- Sonra sözdizimini parçalara ayırın; hangi anahtar kelime, değişken veya parametrenin neyi belirlediğini gösterin.
- Çalışma zamanında verinin bu satırdan önceki ve sonraki halini karşılaştırın; terminal/response sonucunu kontrol edin.
- Aynı fikri boş, hatalı veya farklı bir değerle deneyin; hata oluşursa mesajı okuyup tek değişiklikle yeniden test edin.
Yaygın hata: Bu adımda en yaygın hata, Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı parçasını Kosullu Ifadeler (if-else, switch, ternary) bağlamından koparıp yalnızca ezberlemektir. Önce girdiyi doğrulayın, sonra beklenen çıktıyı küçük bir testle karşılaştırın.
Şimdi sen dene: Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı üzerinde küçük bir değişiklik yapın; sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması akışında hangi çıktının değişmesini beklediğinizi yazın, sonra normal ve hatalı bir girdiye karşı çalıştırın.
Zihinsel model ve benzetme
Zihninde canlandır: Akış burada bir karara ayrıldı.
İşaretlerin anlamı
=
Sağdaki değeri soldaki isme bağlar.
(
Çağrıyı veya gruplamayı başlatır.
)
Çağrıyı veya gruplamayı bitirir.
{
Bir blok kapsamı açar.
}
Açılan bloğu kapatır.
;
İfadenin bittiğini bildirir (dile göre zorunlu olabilir).
Başka nasıl çözülürdü?
Değişmez değerler için const/final/readonly gibi niteleyiciler, yanlışlıkla değişilmeyi engeller.
Bu satırı hiç bilmeyen biri için parçalayalım
Satırın görevi: Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı satırının backend görevi
Kavram: Kosullu Ifadeler (if-else, switch, ternary)
Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı satırını yalnızca sözdizimiyle değil, sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması içindeki göreviyle okuyun.
Blok kapsamı: Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı satırının bulunduğu backend akışındaki kapsamı ve sonraki adıma taşıdığı sonucu belirler.
Neden şimdi: Bu parça, sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması akışında sonraki adımın ihtiyaç duyduğu girdiyi hazırlamak için şimdi kuruluyor.
Kod etiketlerini tek tek incele
if (puan >= 50) { console.log("Gectiniz"); } else { console.log("Kaldiniz"); }
kod parçası
Ne yapar? Bu satır backend akışının bir parçasını yürütür.
Neden burada? Önceki girdiyi sonraki adıma taşımak için bu konumda bulunur.
Silinirse: İlgili ara sonuç veya çıktı oluşmaz.
1
if-else ile Kosul Bagli Calisma
if-else yapisinin nasil calistigini ve hangi kosulda hangi blokun execute edildigini ogrenmek.
#if-statement
#else
#conditional-branching
#comparison-operator
#block-scope
#boolean-evaluation
if (puan >= 50) { ... } else { ... }
puan >= 50 degerlendirilir, true/false dalina gore ilgili blok calisir
Konsola 'Gectiniz' veya 'Kaldiniz' yazilir
puan degiskeni 50 veya uzeri ise konsolda 'Gectiniz', altinda ise 'Kaldiniz' gormek.
Amaç
Kosullu Ifadeler (if-else, switch, ternary) içindeki bu kod satırı, sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması içinde bu örneğin ilgili görevini üstlenir.
Nasıl Çalışır
backend çalışma zamanı bu kod parçasını işler ve sunucu tarafı kodun girdiyi işlemesi, doğru çıktıyı üretmesi ve güvenli biçimde çalışması için sonraki adıma taşınacak ara sonucu üretir.
Sözdizimi Detayı
if (kosul) { kod } else { kod } — suslu parantezler tek satirli ifadelerde zorunlu degildir ama okunabilirlik icin onerilir.
Bellek Durumu (Variables)
| Değişken |
Tip |
Değer |
Adres |
Ref |
| puan |
number |
35 (ornek) |
stack |
1 |
Akış Şeması (Flowchart)
AST (Abstract Syntax Tree)
{
"type": "IfStatement",
"test": {
"type": "BinaryExpression",
"operator": ">=",
"left": {
"type": "Identifier",
"name": "puan"
},
"right": {
"type": "Literal",
"value": 50
}
},
"consequent": {
"type": "BlockStatement",
"body": [
{
"type": "ExpressionStatement",
"expression": {
"type": "CallExpression",
"callee": {
"type": "MemberExpression",
"object": {
"type": "Identifier",
"name": "console"
},
"property": {
"type": "Identifier",
"name": "log"
}
},
"arguments": [
{
"type": "Literal",
"value": "Gectiniz"
}
]
}
}
]
},
"alternate": {
"type": "BlockStatement",
"body": [
{
"type": "ExpressionStatement",
"expression": {
"type": "CallExpression",
"callee": {
"type": "MemberExpression",
"object": {
"type": "Identifier",
"name": "console"
},
"property": {
"type": "Identifier",
"name": "log"
}
},
"arguments": [
{
"type": "Literal",
"value": "Kaldiniz"
}
]
}
}
]
}
}
Değişiklikler (Diff)
+ Eklendi:
+ if (puan >= 50) {
+ console.log("Gectiniz");
+ } else {
+ console.log("Kaldiniz");
+ }
Akıllı İpuçları (Adaptive Hints)
Tetikleyici: ReferenceError
'puan' degiskeninin bu satirdan once tanimlanmis ve bir deger atanmis olmasi gerekir.
Tetikleyici: SyntaxError
if parantezlerini ve suslu parantezleri dengeli yazdiginizdan emin olun.
Tetikleyici: TypeError
puan sayisal bir deger degilse >= karsilastirmasi beklenmedik sonuclar uretebilir.
İpucu
Kosul ifadelerini net tutun ve === veya >= gibi acik karsilastirmalar kullanin. Nested if-else yerine erken donus (early return) tercih edin.
Yaygın Hata
Girdiyi doğrulamadan bu satırın ürettiği sonucu doğru kabul etmek.
Ek Açıklama
If-else yapisini inceliyoruz. Puan 50 veya uzerindeyse gectiniz, altinda ise kaldiniz yazdirilir. Kosul dogru degerlendirilince ilk blok, yanlis ise else bloku calisir.