java静态方法与数组计算
我试图为我的程序计算和显示数组,但它一直在说,你不能将double转换为double[],例如,在我的代码中,当我计算表面重力时,它说我不能将数组和变量混合,因为我声明万有引力常数是一个变量,方程中的所有东西都是一个数组。另一个是,当我通过将直径数组除以2来计算半径,并将半径变量作为用于计算表面重力的静态方法中的参数传递时,编译器说double不能转换为double[],因为在用于表面重力的静态方法中,我将半径声明为数组。任何帮助都将不胜感激。下面是我的代码:java静态方法与数组计算,java,arrays,methods,static,Java,Arrays,Methods,Static,我试图为我的程序计算和显示数组,但它一直在说,你不能将double转换为double[],例如,在我的代码中,当我计算表面重力时,它说我不能将数组和变量混合,因为我声明万有引力常数是一个变量,方程中的所有东西都是一个数组。另一个是,当我通过将直径数组除以2来计算半径,并将半径变量作为用于计算表面重力的静态方法中的参数传递时,编译器说double不能转换为double[],因为在用于表面重力的静态方法中,我将半径声明为数组。任何帮助都将不胜感激。下面是我的代码: public class Grav
public class GravityV1{
// calculate surface gravity static method
public static double surfaceGravity(double G, double[] M, double[] r){
// equation for surface gravity
double[] g = (G * M) / Math.pow(r, 2);
// return statement
return g;
}
// displaying static method
public static void display(String[] planets, double[] radius, double[]
mass, double[] g){
// display output
System.out.printf("%n", planets, radius, mass, g);
}
// write results to text file static method
public static void main(String args[]){
// declare array for months
String[] Planets = new String[8];
// initialize array
Planets [0] = "Mercury";
Planets [1] = "Venus";
Planets [2] = "Earth";
Planets [3] = "Mars";
Planets [4] = "Jupiter";
Planets [5] = "Saturn";
Planets [6] = "Uranus";
Planets [7] = "Neptune";
// declare array for mass
double[] mass = new double[8];
// initialize array
mass [0] = 3.30E23;
mass [1] = 4.869E24;
mass [2] = 5.97E24;
mass [3] = 6.4219E23;
mass [4] = 1.900E27;
mass [5] = 5.68E26;
mass [6] = 8.683E25;
mass [7] = 1.0247E26;
// declare array for diameter
double[] diameter = new double[8];
// initialize array
diameter [0] = 4880;
diameter [1] = 12103.6;
diameter [2] = 12756;
diameter [3] = 6794;
diameter [4] = 142984;
diameter [5] = 120536;
diameter [6] = 51118;
diameter [7] = 49532;
// // convert to radius
// declare radius variable
double radius;
// for each loop for displaying
for(double calc : diameter){
// calculation for converting to radius
radius = calc / 2;
}
// // calculate surface gravity
// declare and initialize universal gravity constant;
double G = 6.67384 * Math.pow(10, -11);
// call surface gravity method
surfaceGravity(G, mass, radius);
}
}
是的,不能将标量与数组混合使用。您需要重写此方法:
public static double[] surfaceGravity(double G, double[] M, double[] r){
double[] g = new double[M.length];
// equation for surface gravity
for (int i=0; i < g.length; i++) {
g[i] = (G * M[i]) / Math.pow(r[i], 2);
}
// return statement
return g;
}
公共静态双[]表面完整性(双G,双M,双r){
double[]g=新的双精度[M.长度];
//地面重力方程
对于(int i=0;i
您应该逐个计算双数组中的元素
改变
// calculate surface gravity static method
public static double surfaceGravity(double G, double[] M, double[] r){
// equation for surface gravity
double[] g = (G * M) / Math.pow(r, 2);
// return statement
return g;
}
到
//计算地面重力静态法
公共静态双[]表面间隙(双G,双[]M,双[]r){
//地面重力方程
double[]g=新的双精度[M.长度];
对于(int i=0;i完成其他答案,您应该建立一个半径数组(因为surfaceGravity
需要double[]
作为其第三个参数):
double[]半径=新的double[diameter.length];
//用于显示的每个循环
对于(int i=0;i
// calculate surface gravity static method
public static double[] surfaceGravity(double G, double[] M, double[] r){
// equation for surface gravity
double[] g = new double[M.length];
for(int i=0;i<g.length;i++)
{
g[i] = (G * M[i]) / Math.pow(r[i], 2);
}
// return statement
return g;
}
double[] radius = new double[diameter.length];
// for each loop for displaying
for(int i = 0; i < diameter.length; i++) {
// calculation for converting to radius
radius[i] = calc / 2;
}