Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用二维阵列_Java_Arrays_Object_2d - Fatal编程技术网

Java 使用二维阵列

Java 使用二维阵列,java,arrays,object,2d,Java,Arrays,Object,2d,我试图用一个二维数组创建一个抛射表。我需要帮助格式化这个表的输出,因为我真的不知道该怎么做。我也明白,我在驱动程序类中使用静态方法的方式非常笨拙;我愿意接受有关这方面的建议 /** * Driver class * * @author Mark Davis * @version 12/25/2013 */ public class Driver { public static final int rows = 8, cols = 8; public static vo

我试图用一个二维数组创建一个抛射表。我需要帮助格式化这个表的输出,因为我真的不知道该怎么做。我也明白,我在驱动程序类中使用静态方法的方式非常笨拙;我愿意接受有关这方面的建议

/**
 * Driver class
 * 
 * @author Mark Davis
 * @version 12/25/2013
 */
public class Driver
{
    public static final int rows = 8, cols = 8;
    public static void main(String[] args)
    { 
        System.out.println("Test");
        double[][] table = new double[rows][cols];
        Catapult catapult = new Catapult();
        for(int i = 0; (i < rows); i++)
        {
            for(int ii = 0; (ii < cols); ii++)
            {
                table[i][ii] = catapult.calcRange(v(ii), t(i));
                System.out.print(table[i][ii] + " ");
            }
        }
        printResults(table);
    }

    public static double v(int i)
    {
        return 20 + (5*i);
    }

    public static double t(int i)
    {
        return 25.0 + (5.0*i);
    }

    public static void printResults(double[][] a)
    {
        for(int i = 1; (i >= rows); i++)
        {
            for(int ii = 1; (ii >= cols); ii++)
            {
                System.out.print(a[i][ii] + "  ");
            }
            System.out.println();
        }
    }
}



/**
 * Catapult object class
 * 
 * @author Mark Davis
 * @version 12/25/2013
 */
public class Catapult
{
/**
 * Constructor for objects of class Catapult
 */
public static final double g = 9.8;
private static int v;
private static double theta;
public Catapult()
{
}

public double calcRange(double v, double theta)
{
    double l = (Math.pow(v, 2)*Math.sin(Math.toRadians(theta)))/g;
    System.out.println(l);
    return l;
}
public double getTheta()
{
   return theta; 
}
public int getV()
{
    return v;
}
}
/**
*驾驶员等级
* 
*@作者马克·戴维斯
*@version 12/25/2013
*/
公务舱司机
{
公共静态final int rows=8,cols=8;
公共静态void main(字符串[]args)
{ 
系统输出打印(“测试”);
double[]table=新的double[行][cols];
弹射器弹射器=新弹射器();
for(int i=0;(i=行);i++)
{
for(int ii=1;(ii>=cols);ii++)
{
系统输出打印(a[i][ii]+“”);
}
System.out.println();
}
}
}
/**
*弹射器对象类
* 
*@作者马克·戴维斯
*@version 12/25/2013
*/
公共级弹射器
{
/**
*Catapult类对象的构造函数
*/
公共静态最终双g=9.8;
专用静态INTV;
私有静态双θ;
公共弹射器()
{
}
公共双刻度(双v,双θ)
{
双l=(数学功率(v,2)*数学正弦(数学托拉迪安(θ))/g;
系统输出打印LN(l);
返回l;
}
公共双getheta()
{
返回θ;
}
公共int getV()
{
返回v;
}
}

快速浏览一下,我注意到您使用的是“I>=rows”而不是“I 尝试使用这些循环(并解释实际问题是什么)

for(int i=0;(i
在做算法之前,你应该真正理解你的逻辑。因此,请检查您尝试执行的操作的总体逻辑(循环、对象的创建过程等等)

另外,要格式化一个表(我认为它是一个使用print的简单输出),您可以使用
Formatter()
格式化输出

小片段

Formatter fmf = new Formatter();
System.out.print(fmf.format("2%d",10));
format()中的所有结构如下所示:

%[argument_index$][flags][width][.precision]转换


关于它的更多信息你

请叫你变量
i
j
,你会对我的这些感到生气的。谢谢你,我按照你的建议做了,并做了一些其他的小改进。
Formatter fmf = new Formatter();
System.out.print(fmf.format("2%d",10));