let x = 15;
let y = 10;
let z = 10;
if (x > y && x > z) {
console.log("x en büyük değerdir.");
} else if (y > x && y > z) {
console.log("y en büyük değerdir.");
} else if (z > x && z > y) {
console.log("z en büyük değerdir.");
} else {
console.log("Bazı değerler eşittir veya tüm değerler aynıdır.");
} Şu kodu şu şekilde nasıl farklı değiştirirdiniz?
5
●190
- 20-05-2024, 03:16:57Merhaba. Aşağıdakı kod örneğinde y ve z değişkeninin 10 x değişkenin değeri 15 olduğunu varsayarsak kod mantıksız çalışır. Yani normalde 15 büyük demesi lazım y ve z ye bakmaması lazım. Bende direkt else kısmına atıyor. Umarım fikrimi anlatabilmişimdir. Normalde x büyüktür demesi lazım. Y ve z 10 olsa bile.
- 20-05-2024, 04:01:13
let x = 10; let y = 10; let z = 10; if (x > y && x > z) { console.log("x en büyük değerdir."); } else if (y > x && y > z) { console.log("y en büyük değerdir."); } else if (z > x && z > y) { console.log("z en büyük değerdir."); } else { console.log("Bazı değerler eşittir veya tüm değerler aynıdır."); } - 20-05-2024, 04:01:29Hocam. Peki y ve z değişkeninin değeri 60, x değişkeninin değeri ise 65 olsaydı x büyüktür mü yazardı? Bu soruyu sormamda sebep Bende, sayılar eşittir yazıyor öyle olmasına rağmen o yüzden sordum bu soruyu.Misafir adlı üyeden alıntı: mesajı görüntüle
- 20-05-2024, 04:08:23Bende tam tersi tüm değerler eşit dedi. Kafayı mı yedi bilgisayar acaba?Misafir adlı üyeden alıntı: mesajı görüntüle
- 20-05-2024, 04:10:54Hocam ben de bu şekilde yazdım değerler de doğru ama else kısmına atıyordu.Misafir adlı üyeden alıntı: mesajı görüntüle
- 20-05-2024, 06:25:55Üyeliği durdurulduKodun mantığına bakılırsa, eğer x en büyükse "x en büyük değerdir." çıktısını almayı bekleriz. Ancak, belirttiğiniz gibi, y ve z'nin 10 olduğu durumda bu şart sağlanmaz ve son else bloğuna gider.
Bunun nedeni, koşulların "&&" (ve) operatörüyle birbirine bağlanmasıdır. Kod, öncelikle x'in y'den ve z'den büyük olup olmadığını kontrol eder. Eğer bu şart sağlanıyorsa, x en büyük olarak belirlenir ve if bloğu çalışır. Ancak, bu şart sağlanmadığında diğer koşullara bakar. İkinci koşul, y'nin x'ten ve z'den büyük olup olmadığını kontrol eder. Eğer bu da sağlanmazsa, son koşul z'nin x'ten ve y'den büyük olup olmadığını kontrol eder.
Eğer sadece x'in en büyük olup olmadığını kontrol etmek istiyorsanız, if-else bloklarını kaldırabilir ve sadece x'in durumunu kontrol edebilirsiniz. Örneğin:
let x = 15; if (x > 10) { console.log("x en büyük değerdir."); } else if (x === 10) { console.log("x, y ve z eşittir."); } else { console.log("x en küçük değerdir."); }