folder Tahribat.com Forumları
linefolder Java
linefolder Java Switch Double Problemi Hk.



Java Switch Double Problemi Hk.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ershn
    ershn's avatar
    Kayıt Tarihi: 28/Mayıs/2010
    Erkek

    Merhaba mürid(e)ler,

    Üniversite birinci sınıf bir tanıdığım basit bir problem ile karşılaşmış, Java hakkında hiçbir fikrim olmadığı için kendisine yardımcı olamadım.

    İlgili kodlar için: https://pastebin.pl/view/3b4cc9d0

    Karşılaştığı hata: https://hizliresim.com/K2a2Lj

    if ile yapmak istememiş, nextDouble ile yapmak istiyor fakat beceremiyor. BMI değerinde double olarak çıktı vermiyormuş.

    burada nasıl bir yol izlemeli birinci sınıf öğrencisine anlatabileceğimiz şekilde bir örnek kod parçası ya da direkt açıklama satırları ile mevcut kodlar üzerinde değişiklik yapabilecek biri var mıdı?




    Allah Türktür.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Formüle göre sonuç doğru çıkmış

    90 / (1.9 * 1.9) = 90 / 3.61 = 24 felan filan.

     

    Neresi hatalı onu anlayamadım.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    1. case (18.5<BMI<25)

    javada bu sekilde koşul yazılabiliyor mu ya ? benim ide direkt hata verdi ??

    case(bmi > 18.5 && bmi < 25)

    boyle bi denesene

     


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    ontedi bunu yazdı

    Formüle göre sonuç doğru çıkmış

    90 / (1.9 * 1.9) = 90 / 3.61 = 24 felan filan.

     

    Neresi hatalı onu anlayamadım.

    alttaki switch hic calismiyo :P 


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ershn
    ershn's avatar
    Kayıt Tarihi: 28/Mayıs/2010
    Erkek
    ontedi bunu yazdı

    Formüle göre sonuç doğru çıkmış

    90 / (1.9 * 1.9) = 90 / 3.61 = 24 felan filan.

     

    Neresi hatalı onu anlayamadım.

    24.xxxxxx şeklinde devam ediyor 24.x olmuyor mesela.



    Allah Türktür.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ershn
    ershn's avatar
    Kayıt Tarihi: 28/Mayıs/2010
    Erkek
    yolbulucu bunu yazdı
    ontedi bunu yazdı

    Formüle göre sonuç doğru çıkmış

    90 / (1.9 * 1.9) = 90 / 3.61 = 24 felan filan.

     

    Neresi hatalı onu anlayamadım.

    alttaki switch hic calismiyo :P 

    valla ben de hiç bilmiyorum, arkadaşa ilettim durumu :)


    Allah Türktür.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    ershn bunu yazdı
    ontedi bunu yazdı

    Formüle göre sonuç doğru çıkmış

    90 / (1.9 * 1.9) = 90 / 3.61 = 24 felan filan.

     

    Neresi hatalı onu anlayamadım.

    24.xxxxxx şeklinde devam ediyor 24.x olmuyor mesela.


    System.out.printf("%.2f", bmi);


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    İşyeri ağında hızlıresim engelli olduğu için hata mesajını göremiyorum ama kodlara bakınca 2 önemli yanlış görüyorum hocam.

    1 - Java'da switch-case double ile çalışmaz. primitive int, byte, short, char tiplerinden biri ya da  Integer, Byte, Short ya da Character ile çalışabilir. Bunlara ek olarak Enum ya da Java 7 ve sonrası bir versiyon kullanıyorsa String ile de çalışabilir.

    2- case'lerin her birinde verilen değer switch içinde verilen değişkenin değerine eşit mi diye kontrol edilir. Oraya şart yazamazsın. Yazarsan örneğin (BMI<16) işleminin sonucu boolean bir değerdir ve kod derlenmez. Çünkü yukarıdaki tiplerden biri değil.

    Bu tür bir problemin çözümü için maalesef if-else if kullanmak gerek. switch-case bu tür problemlerin çözümü için uygun değil.

    Detay için: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

     

    JPriest tarafından 25/Oca/21 16:19 tarihinde düzenlenmiştir

    Sen hiç kaval çaldın mı?
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ershn
    ershn's avatar
    Kayıt Tarihi: 28/Mayıs/2010
    Erkek
    JPriest bunu yazdı

    İşyeri ağında hızlıresim engelli olduğu için hata mesajını göremiyorum ama kodlara bakınca 2 önemli yanlış görüyorum hocam.

    1 - Java'da switch-case double ile çalışmaz. primitive int, byte, short, char tiplerinden biri ya da  Integer, Byte, Short ya da Character ile çalışabilir. Bunlara ek olarak Enum ya da Java 7 ve sonrası bir versiyon kullanıyorsa String ile de çalışabilir.

    2- case'lerin her birinde verilen değer switch içinde verilen değişkenin değerine eşit mi diye kontrol edilir. Oraya şart yazamazsın. Yazarsan örneğin (BMI<16) işleminin sonucu boolean bir değerdir ve kod derlenmez. Çünkü yukarıdaki tiplerden biri değil.

    Bu tür bir problemin çözümü için maalesef if-else if kullanmak gerek. switch-case bu tür problemlerin çözümü için uygun değil.

    Detay için: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

     

    hocam bilgiler için çok teşekkür ederim, arkadaşa iletiyorum.


    Allah Türktür.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek
    JPriest bunu yazdı

    1 - Java'da switch-case double ile çalışmaz. primitive int, byte, short, char tiplerinden biri ya da  Integer, Byte, Short ya da Character ile çalışabilir. Bunlara ek olarak Enum ya da Java 7 ve sonrası bir versiyon kullanıyorsa String ile de çalışabilir.

    Dahada genişleteyim, hiç bir dilde floating-point (noktalı) değerler döngülerde kullanılmaz. Çünkü floating-point değerlerin kesin karşılıkları yoktur, yaklaşık değerleri vardır. Bu nedenle karşılaştırmalarda da sorunlar çıkartır. uzun hikaye...

    Örnek;

      for (float i = 1f; i <= 15f; i += 0.2f)
    { Console.WriteLine(i); }

     

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    cukurova bunu yazdı
    JPriest bunu yazdı

    1 - Java'da switch-case double ile çalışmaz. primitive int, byte, short, char tiplerinden biri ya da  Integer, Byte, Short ya da Character ile çalışabilir. Bunlara ek olarak Enum ya da Java 7 ve sonrası bir versiyon kullanıyorsa String ile de çalışabilir.

    Dahada genişleteyim, hiç bir dilde floating-point (noktalı) değerler döngülerde kullanılmaz. Çünkü floating-point değerlerin kesin karşılıkları yoktur, yaklaşık değerleri vardır. Bu nedenle karşılaştırmalarda da sorunlar çıkartır. uzun hikaye...

    Örnek;

      for (float i = 1f; i <= 15f; i += 0.2f)
    { Console.WriteLine(i); }

     

    Bugün de birşey öğrendim. Güne puanım 10/10

    ---

    pythonda ne hata veriyor acaba diye merak edenlere amme hizmeti:

    KOD:

    for x in range(10.5):
    print(x)

    HATA:

    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    TypeError: 'float' object cannot be interpreted as an integer

    NoktaliVirgul tarafından 26/Oca/21 09:20 tarihinde düzenlenmiştir

    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
Toplam Hit: 2020 Toplam Mesaj: 11
java switch double