Şimdi Ara

parantez sorusu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
72
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • for (int x = 0 ; x<20; x++)
    {
    System.out.println(1 + (int)(Math.random()*20));


    }

    burada neden (Math.random ()*20) parantez kullanılmış açıklayabilir misiniz ? parantezi sildiğimde bütün sonuçlar 1 şeklinde çıkıyor



  • Math.random() 0 - 1 arasi double generate eder.
    Sen 20 yi silince 0 - 1 arasi double degeri int e cast ediyor, o da 0 yapiyor.
    Neden 20 + 1 gibi sayilar ekledigini kodu yazana sormak gerek.
    Kodu yazan kisi belli ki tam olarak bilmiyor Java API sini, zira Math.random() i int e cast etmek mantiksiz, Random.nextInt() varken.
    1 ile 20 arasi random generate etmek icin soyle bir kod daha uygun:
     
    Random r = new Random();
    for (int i = 0; i <20 ; i++) {
    System.out.println(1 + r.nextInt(19));
    }


    Math.random() kendi icerisinde Random.nextDouble() cagiriyor. Halbuki biz int istiyoruz.

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.