wmaraci reklam

android 9 ile 10 arasındaki random() farkı?

8 Mesajlar 1.125 Okunma
pst.net
wmaraci reklam

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
arkadaşlar bir uygulamam var android 9 da çalışıyor ancak 10da kapanıyor.
java.lang.ArrayIndexOutOfBoundsException length=5; index=5
hatasını alıyorum. yani normal şartlarda bana 5 rakam var ama 6 istiyorsun tarzında bir mesaj veriyor. lakin neden 9 da bu kod çalışırken 10 da hata veriyor?

for(int i=0; i<6; i++) {

şöyle bir döngüde var. normalde 5 haneli. (hata gösterdiği yerde burası crashliticsde)
burayı
for(int i=0; i=4; i++) {
şeklinde düzeltip denemeyide düşünüyorum ki sanırım zaten sorunda burada.

şimdi üstadlardan beklentim şu;
yapacağım değişim sorunumu çözer mi?
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
wmaraci
reklam

sahinyghs sahinyghs sahinenes.com Kullanıcı
  • Üyelik 16.01.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci , Android Developer
  • Konum Muğla
  • Ad Soyad E** Ş**
  • Mesajlar 433
  • Beğeniler 45 / 93
  • Ticaret 3, (%100)
döngü çalışmaz. çünkü i'yi 0 olarak tanımlamışsınız ve 4 ise döngünün çalışmasını istiyorsunuz. bu mümkün değil
 

 

Profesyonel Android uygulama yazımı.

sae sae WM Aracı Kullanıcı
  • Üyelik 22.07.2020
  • Yaş/Cinsiyet 38 / E
  • Meslek Teknisyen
  • Konum İstanbul Avrupa
  • Ad Soyad M** V**
  • Mesajlar 14
  • Beğeniler 2 / 1
  • Ticaret 0, (%0)
İfade ediliş biçimleri değişebiliyor fakat algoritma temellerinin değişmemesi lazım, Acaba sorunun Android 9 veya 10 olması değilde , random'da Android 9 da ufak değer geldiği için hatayı es geçiyor olabilr mi?
 

 

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)

sahinyghs adlı üyeden alıntı

döngü çalışmaz. çünkü i'yi 0 olarak tanımlamışsınız ve 4 ise döngünün çalışmasını istiyorsunuz. bu mümkün değil


for(int i=0; i<6; i++) {

şu döngü normal şartlarda array için sayı seçiyor. 1-5 dahil arasındaki sayılar.
ama tabi bu döngüde 0-6 arası olunca 5 değil 6 sayı olmuş oluyor. <6 olması sebebiyle. Çok enteresan şekilde kod hata vermeden 9 da çalışıyor. ancak 10 da çalışmıyor. ve şu da var ki ben bunu düşündüğümün aksine 5 kez çevirmesi için 0-5 mi yapmalıyım 0-4 mü. yani 0-6 da çalışmasıda çok enteresan.

charArray = new ArrayList();
String[] chArr = wordStr.split("");
for(int i=0; i<6; i++) { // hatalı satır.
String c = chArr[i];
charArray.add(c);
}
charArray.remove(0);
Log.i("log-", "CHARS ARRAY: " + charArray);



// Get Random characthers function
getRandomChar();
}

en basit haliyle bu.

yani bi yanlışanlama oldu sanırım yazımda. for döngüsü olduğu için 0 dan başlayabilir. kodu tam yazayımda yanlış anlaşılma olmasın :)
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
wmaraci
Mersin evden eve nakliyat

sahinyghs sahinyghs sahinenes.com Kullanıcı
  • Üyelik 16.01.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci , Android Developer
  • Konum Muğla
  • Ad Soyad E** Ş**
  • Mesajlar 433
  • Beğeniler 45 / 93
  • Ticaret 3, (%100)

AzveNet adlı üyeden alıntı

for(int i=0; i<6; i++) {

şu döngü normal şartlarda array için sayı seçiyor. 1-5 dahil arasındaki sayılar.
ama tabi bu döngüde 0-6 arası olunca 5 değil 6 sayı olmuş oluyor. <6 olması sebebiyle. Çok enteresan şekilde kod hata vermeden 9 da çalışıyor. ancak 10 da çalışmıyor. ve şu da var ki ben bunu düşündüğümün aksine 5 kez çevirmesi için 0-5 mi yapmalıyım 0-4 mü. yani 0-6 da çalışmasıda çok enteresan.

en basit haliyle bu.

yani bi yanlışanlama oldu sanırım yazımda. for döngüsü olduğu için 0 dan başlayabilir. kodu tam yazayımda yanlış anlaşılma olmasın :)



sanırım sorunu anladım. i=0 , i<5 yaparsanız 0,1,2,3,4 için döndürür yani 5 defa. ondan dolayı buna göre aralık belirlemeniz gerekiyor.

9 ve 10 arasındaki çalışmama sorununa gelecek olursak ilginç. ama son zamanlarda yazdığım ve test ettiğim birçok uygulamada 10 sürümünde bir şeylerin değiştiğini farkettim. 10 dan itibaren çok köklü değişimlere başladılar. her kullanacağım şey için dökümantasyonu okuyorum artık. kolay gelsin
 

 

Profesyonel Android uygulama yazımı.

athirsizi athirsizi WM Aracı Kullanıcı
  • Üyelik 21.03.2020
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılım
  • Konum İzmir
  • Ad Soyad F** K**
  • Mesajlar 530
  • Beğeniler 328 / 197
  • Ticaret 0, (%0)
i<=4 olarak kullanmanız gerek
 

 

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Log.i("log-",......);

dışında çözüm olmadı.
i<=4 te denemiştim i=4 te i<5 te.. bu arada 5 hane var fakat çektiğim 6 hane idi. o yüzden ben i<6 kullandım for döngüsünde. ama sonuç itibariyle bu şekilde bile android 10 da log.i olmadan kapanıyordu.

yardımcı olmaya çalışan arkadaşlara teşekkür ederim. eğer ihtiyacı olan, benzer sorunla karşılaşan olursa bu şekilde sanırım aşabilir. en azından denemesinde fayda var :)
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

hardcode hardcode WM Aracı Kullanıcı
  • Üyelik 11.10.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Mobil Uygulama Geliştiricisi
  • Konum Çanakkale
  • Ad Soyad E** M**
  • Mesajlar 11
  • Beğeniler 6 / 1
  • Ticaret 0, (%0)
Selamlar, lütfen aldığınız hata da use-case belirtin ki alternatif çözüm yolu önerebilelim, tam olarak ne yapmaya çalıştığınızı anlamadım fakat belli bir aralıtka random sayı türetebilmek için;

Java:
```
int randomNumber = new Random().nextInt(6); // 0 ile 6 arasında rastgele bir sayı; 0,1,2,3,4 veya 5
```

Kotlin:
```
val randomNumber = (2 until 6).random() // 2 ile 6 arasında rastgele bir sayı; 2,3, 4 veya 5

//veya

val randomNumber = (2..6).random() // 2 ile 7 arasında rastgele bir sayı; 2,3,4,5 veya 6
```
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al