我有一个填充数组的循环但是当我运行代码时,似乎没有填充元素。该代码应该计算球体中同心壳的体积。我想出了半径网格,其中元素的数量设置为shell + 1来计算中心点。现在我想在这个卷方法中使用它,它将返回与所选的相同数量的shell。如果我将音量网格初始化为[shells + 1],我可以获得值的唯一方法。我返回shell的数量,不包括额外的元素。这很棒但是,我需要将此网格用于其他计算。这个额外的,未定义的元素会与其他计算混乱吗?
public class VolGrid {
public double vol[];
double p = PhysicalConst.pi;
// Volume on concentric shells
public VolGrid ( int shells , double radius )
{
RadGrid rg = new RadGrid (shells , radius );
vol = new double [ shells +1];
for ( int k = 1 ; k <= shells ; k++ )
{
vol [ k ] = ( ( 4.0 / 3 ) * p * ( Math.pow( rg.rad [ k ] , 3 ) - Math.pow( rg.rad [ k-1 ] , 3 ) ) ) ;
System.out.println(vol[k]);
}
}
}
答案 0 :(得分:0)
数组索引从0开始。迭代 n 元素数组的标准方法是从0循环到 n -1而不是从1循环到 n 。
vol = new double[shells];
for (int k = 0; k < shells; k++) {
...
}