2014-10-29 38 views
-1

我有類IP。錯誤在類中的Java核心thu_nghiem

package DES; 
public class IP 
{ 
    private int a[] ={58,50,42,34,26,18,10}; 

    public void hoanvi(int x[]) 
    { 
     int y[] = new int[7]; 
     for(int i=0;i<7;i++) 
     y[i] = x[i]; 
     for(int i=0;i<7;i++) 
     { 
      int z = a[i]; 
      x[i] = y[z]; 
     } 
    } 

主我被軟件寫:

import DES.*; 

public class thu_nghiem 
{ 
    public static void main(String[] args) 
    { 
     int a[]={58,50,42,34,26,18,10}; 
     IP b = new IP(); 
     b.hoanvi(a); 
     System.out.println(a[6]); 
    } 
} 

JVM messeage錯誤!爲什麼?

+3

什麼是錯誤? – 2014-10-29 18:47:35

回答

1

在這行你從a數組的值:

int z = a[i]; 

在下次嘗試從a陣列中使用的值作爲y的位置的索引。

x[i] = y[z]; 

y被創建爲7層的元件長,所以有效的索引是0至6,但a(58,50,42,34,26,18,10)中的所有的值是大於6,所以它不可避免地會拋出一個錯誤。

我不能告訴你如何解決它,因爲你沒有解釋這段代碼應該做什麼。

0
package DES; 

public class IP { 
    private int a[] = {58, 50, 42, 34, 26, 18, 10}; 

    public void hoanvi(int x[]) { 
     int y[] = new int[7]; 
     for (int i = 0; i < 7; i++) { 
      y[i] = x[i]; 
      for (int j = 0; j < 7; i++) { 
       int z = a[j]; 
       x[i] = y[z]; 
      } 
     } 
    } 
} 

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 58 
    at DES.IP.hoanvi(IP.java:11) 
    at thu_nghiem.main(thu_nghiem.java:9) 

1)    int z = a[j]; 
2)     x[i] = y[z]; 

所以,如果陣列中得到Y的指數。 看起來像提到的索引超出了數組的大小。

無論代碼應該做什麼...