站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于TIJ第四章课后第19题

关于TIJ第四章课后第19题

摘要: 关于TIJ第四章课后第19题


撰写一个函数,能够产生二维的double array并加以初始化。array的容量由函数的参数决定,其初值必须落在函数参数所指定的上下限之间。撰写第二个函数,印出第一个函数所产生的array,试着在main()中通这两个函数产生不同容量的array,并打印其内容。


答案:
public class E19_TwoDDoubleArray {
public static double[][] twoDDoubleArray(
int xLen, int yLen,
double valStart, double valEnd){
double[][] array = new double[xLen][yLen];
double increment =
(valEnd - valStart)/(xLen * yLen);
double val = valStart;
for(int i = 0; i < array.length; i++)
for(int j = 0; j < array[i].length; j++) {
array[i][j] = val;
val += increment;
}
return array;
}
public static void printArray(double[][] array){
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++)
System.out.print(" " + array[i][j]);
System.out.println();
}
}
public static void main(String args[]) {
double[][] twoD =
twoDDoubleArray(4, 6, 47.0, 99.0);
printArray(twoD);
System.out.println("**********************");
double[][] twoD2 =
twoDDoubleArray(2, 2, 47.0, 99.0);
printArray(twoD2);
System.out.println("**********************");
double[][] twoD3 =
twoDDoubleArray(9, 5, 47.0, 99.0);
printArray(twoD3);
}
} ///:~

里边有的地方不是很懂,哪位能帮我注释一下。尤其 double increment =
(valEnd - valStart)/(xLen * yLen);这行是干什么的?


其初值必须落在函数参数所指定的上下限之间
是为符合这个条件,因为要写入xLen * yLen个数据,而且数据要在valStart, valEnd之间,那么第一个是valStart,那么下一个就valStart+(valEnd - valStart)/(xLen * yLen),所以可以保证写完xLen * yLen个数据后,不会超出范围


其实就是保证,数组中的数不超过最大值,及小于最小值。
拿几个数试一下,就明白了。


↑返回目录
前一篇: String类型的对象是不可改变的.这句话怎么理解?
后一篇: 自定义的包,怎么无法引用??