如何处理未填充的数组元素

时间:2013-11-20 04:01:00

标签: java arrays

我有一个填充数组的循环但是当我运行代码时,似乎没有填充元素。该代码应该计算球体中同心壳的体积。我想出了半径网格,其中元素的数量设置为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]); 
        }   
    }
}

1 个答案:

答案 0 :(得分:0)

数组索引从0开始。迭代 n 元素数组的标准方法是从0循环到 n -1而不是从1循环到 n

vol = new double[shells];                  

for (int k = 0; k < shells; k++) {
    ...
}