• 20-05-2024, 03:16:57
    #1
    Merhaba. 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.

    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.");
    }
  • 20-05-2024, 04:01:13
    #2
    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:29
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Tam istediğinizi anlamadım ama bu denli bir kod işinizi görür mü?

    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 if (x === y && x === z) {
        console.log("Tüm değerler eşittir.");
    } else if (x === y) {
        console.log("x ve y eşittir ve en büyük değerdir.");
    } else if (x === z) {
        console.log("x ve z eşittir ve en büyük değerdir.");
    } else if (y === z) {
        console.log("y ve z eşittir ve en büyük değerdir.");
    } else {
        console.log("Bazı değerler eşittir.");
    }
    Hocam. 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.
  • 20-05-2024, 04:08:23
    #4
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Evet, verilen koda göre y ve z değişkeninin değeri 60 ve x değişkeninin değeri 65 olsaydı, çıktı "x" en büyük değerdir.
    x değeri y ve z değerlerinden büyük olduğundan "x en büyük değerdir." yazısı ekrana yazması lazım.
    Bende tam tersi tüm değerler eşit dedi. Kafayı mı yedi bilgisayar acaba?
  • 20-05-2024, 04:10:54
    #5
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Değerlerin doğru atanıp atanmadığını görmek için başlangıçta şu satırı ekleyebilirsiniz:
    console.log(`x: ${x}, y: ${y}, z: ${z}`);
    x: 65, y: 60, z: 60
    x en büyük değerdir.
    Hocam ben de bu şekilde yazdım değerler de doğru ama else kısmına atıyordu.
  • 20-05-2024, 06:25:55
    #6
    Üyeliği durduruldu
    Kodun 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.");
    }