Arrays 操纵循环
我试图用体积数组和均匀密度来计算行星质量的连续层。体积从0开始,这将给出中心和第一个壳之间的体积。所以我需要计算从那里开始的质量,然后从那里开始计算每一层的质量。我遇到的问题是,我需要在这之前加上计算出的质量,以得到总质量(即+imass[k-1]起作用的地方)。我希望最终得到表面上的行星总质量。我能在第一个for循环中忽略这个加法,因为它不在那里吗Arrays 操纵循环,arrays,for-loop,Arrays,For Loop,我试图用体积数组和均匀密度来计算行星质量的连续层。体积从0开始,这将给出中心和第一个壳之间的体积。所以我需要计算从那里开始的质量,然后从那里开始计算每一层的质量。我遇到的问题是,我需要在这之前加上计算出的质量,以得到总质量(即+imass[k-1]起作用的地方)。我希望最终得到表面上的行星总质量。我能在第一个for循环中忽略这个加法,因为它不在那里吗 public class MassGrids { public double imass[]; // Initial mas
public class MassGrids {
public double imass[];
// Initial mass with uniform density
public MassGrids ( int shells , double radius , double mass ){ // constructor for mass grids
VolGrid vg = new VolGrid ( shells, radius ); // calls volume to be used
IntlDensity rho = new IntlDensity ( mass, radius ); // calls INITIAL Density
imass = new double [ shells ] ; // Fills mass array with number of elements, shells
for ( int k = 0 ; k <= shells - 1 ; k++ ){ // For loop will define each element in array
imass[ k ] = ( vg.vol[k] * rho.irho ( mass, radius ) + imass [ k - 1 ]) ;
System.out.println(imass[k]);
}
}
公共类MassGrids{
公共双imass[];
//均匀密度初始质量
公共体量轴网(int壳、双半径、双质量){//体量轴网的构造函数
VolGrid vg=newvolgrid(shell,radius);//调用要使用的卷
IntlDensity rho=新的IntlDensity(质量、半径);//调用初始密度
imass=new double[shells];//用元素数、壳数填充体量数组
for(int k=0;k为什么不将第一个计算放在for循环之外?就像这样
imass[ 0 ] = ( vg.vol[0] * rho.irho ( mass, radius )) ;
for ( int k = 1 ; k <= shells - 1 ; k++ ){ // For loop will define each element in array
imass[ k ] = ( vg.vol[k] * rho.irho ( mass, radius ) + imass [ k - 1 ]) ;
System.out.println(imass[k]);
}
imass[0]=(体积[0]*rho.irho(质量、半径));
for(int k=1;kfor(int k=0;k 0)
imass[k]=(体积[k]*rho.irho(质量、半径)+imass[k-1]);
其他的
imass[k]=vg.vol[k]*rho.irho(质量、半径);
System.out.println(imass[k]);
}
是的,您可以忽略第一个循环中的加法。因为在-1索引位置没有质量元素。比我的更好的方法:)非常好。我将尝试两种方法。很抱歉,我无法向上投票。谢谢。
for ( int k = 0 ; k <= shells - 1 ; k++ ){ // For loop will define each element in array
if(k>0)
imass[ k ] = ( vg.vol[k] * rho.irho ( mass, radius ) + imass [ k - 1 ]) ;
else
imass[ k ] = vg.vol[k] * rho.irho ( mass, radius );
System.out.println(imass[k]);
}