2016-04-05 20 views
-1

Bu yüzden, 5 tamsayı depolamak için tahsis ettiğim bir dizi var, daha sonra bu tam sayıları alıp bunları başka bir değişkenle çarpıyorum (cyclicNum) ancak bir ArrayOutOfBoundsException hatası alıyorum. Birisi sorunun nerede olduğunu açıklayabilir mi? Benim bildiğim kadarıyla yanlış olabilsem de, verilen endekslerin sınırlarını aşmayacağım. CyclicNum değişkenimin test edeceği ve hala aynı hatayı alacağı ikinci döngüde 2 kod yazdım. İşte benim kod şimdiye kadar geçerli: katları uzunluğu iseIndexArrayOutOfBoundsException sorunu. Hatanın nerede olduğundan emin değil misiniz?

Scanner prompt = new Scanner(System.in); 

    System.out.print("Enter a number to perform cyclic computation on: "); 

    int cyclicNum = prompt.nextInt(); 

    System.out.println("Enter how many numbers you would like to multiply by: "); 

    int length = prompt.nextInt(); 

    System.out.println("Enter the numbers: "); 

    int[] multiples = new int[length]; 

    for(int i = 0; i < multiples.length; i++){ 
     multiples[i] = prompt.nextInt(); 
    } 

    for(int j = 0; j < multiples.length; j++){ 
     System.out.println(multiples[j * 2]); 
    } 
+0

Demek istediğiniz "katları" [j] * 2 ', katları değil [j * 2] ' – Maljam

+0

wow haha ​​her zaman kaçırdığım küçük şeyler. Çok teşekkür ederim arkadaşım! – jonnybobonny

+0

Şimdi, bunu kendi başınıza nasıl bulabileceğinizi düşünün. Ne tür teknikler bu tür kusurları ortaya çıkarabilir? – jdv

cevap

0

görünüm için son j için kapsama alanı dışında olacak dizi öğesi j * 2,/2.

alır 5, daha sonra loop'un erişmeye çalıştığı dizin elemanları 0, 2, 4, 6, 8, son ikisi dizinin uzunluğu dışındadır.

İlgili konular