例子问题
例子问题1:实现技术
考虑下面的代码:
Int [] val = {6,1,41,5,1};
int[][] newVals = new int[vals.length][];
For (int I = 0;I < val .length;我+ +){
newVals[i] = new int[val [i]];
For (int j = 0;J < val [i]; J ++) {
newVals[i][j] = vals[i] * (j+1);
}
}
上面的代码做什么?
它创建了一个2D矩阵瓦尔斯数组为每一行。
它把值加起来瓦尔斯,把结果放进去newVals.
它执行一个矩阵乘法瓦尔斯而且newVals,将最终结果存储在newVals.
的成员的倍数,该代码创建一个2D数组瓦尔斯,使用每个值来确定要计算的倍数数。
代码创建一个2D数组,其中包含的成员从1到5的所有倍数瓦尔斯。
的成员的倍数,该代码创建一个2D数组瓦尔斯,使用每个值来确定要计算的倍数数。
让我们看看这个程序的主循环:
For (int I = 0;I < val .length;我+ +){
newVals[i] = new int[val [i]];
For (int j = 0;J < val [i]; J ++) {
newVals[i][j] = vals[i] * (j+1);
}
}
第一个循环显然贯穿瓦尔斯数组表示该数组中的项数。之后,它在newVals二维数组是与输入数组中的值一样长的第二个维度瓦尔斯.因此,对于41,它创建了第3行newVals这是41列宽。
然后,我们进入第二个循环。这个函数从0迭代到存储在当前位置中的值瓦尔斯.它将值的倍数放置在给定的2D数组位置。想到的J + 1.对于41的情况,这将从1到41(对于所有的值也是如此)。因此,您创建了一个具有初始值的所有倍数的2D数组瓦尔斯数组中。