package com.liu.java1;import java.util.*;
public class test
{ /**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
final double STARTRATE = 10;
final int NRATE = 6;
final int NYEARS =10;
double[] interestRate = new double[NRATE];
for(int ii = 0; ii <=interestRate.length; ii++)
{
interestRate[ii] = (STARTRATE + ii)/100;
}
double[][] balance = new double[NRATE][NYEARS];
for(int ii = 0; ii <= interestRate.length; ii ++ )
{
balance[0][ii] = 10000;
}
for(int ii = 1; ii <= balance.length; ii++ )
{
for(int jj = 0; jj <= balance[ii].length; jj++)
{ double oldBalance = balance[ii - 1][jj];
double interest = oldBalance * interestRate[jj];
balance[ii][jj] = oldBalance + interest;
balance[ii][jj] = STARTRATE;
}
}
for(int ii = 0; ii <= interestRate.length; ii++)
{
System.out.printf("%9.0f%%", 100 * interestRate[ii]);
}
System.out.println();
/*for(double[] row : balance);
{
for(double b : row)
System.out.printf("%10.2f", b);
System.out.print("");
}*/
System.out.println(Arrays.deepToString(balance));
}}/*上面的是代码,要打印出一个二维数组,编译没有问题,但是控制板显示
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at com.liu.java1.test.main(test.java:21)
请问高手们,哪里出问题了?
*/
public class test
{ /**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
final double STARTRATE = 10;
final int NRATE = 6;
final int NYEARS =10;
double[] interestRate = new double[NRATE];
for(int ii = 0; ii <=interestRate.length; ii++)
{
interestRate[ii] = (STARTRATE + ii)/100;
}
double[][] balance = new double[NRATE][NYEARS];
for(int ii = 0; ii <= interestRate.length; ii ++ )
{
balance[0][ii] = 10000;
}
for(int ii = 1; ii <= balance.length; ii++ )
{
for(int jj = 0; jj <= balance[ii].length; jj++)
{ double oldBalance = balance[ii - 1][jj];
double interest = oldBalance * interestRate[jj];
balance[ii][jj] = oldBalance + interest;
balance[ii][jj] = STARTRATE;
}
}
for(int ii = 0; ii <= interestRate.length; ii++)
{
System.out.printf("%9.0f%%", 100 * interestRate[ii]);
}
System.out.println();
/*for(double[] row : balance);
{
for(double b : row)
System.out.printf("%10.2f", b);
System.out.print("");
}*/
System.out.println(Arrays.deepToString(balance));
}}/*上面的是代码,要打印出一个二维数组,编译没有问题,但是控制板显示
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at com.liu.java1.test.main(test.java:21)
请问高手们,哪里出问题了?
*/
改成
for(int ii = 0; ii <interestRate.length; ii++) 不能取等号比如
int k=0;
int a[]=new int[3];
for(int i=0;i<a.length,i++){
a[i]=k+1;
}
那么a数组只有a[0],a[1],a[2],它的长度为3
这样i只能取0,1,2就不会越界了
{
interestRate[ii] = (STARTRATE + ii)/100;
} 应该是ii < interestRate.length;你是<=这肯定会造成数组越界的!
java.lang.ArrayIndexOutOfBoundsException这个异常就是数组越界异常!