Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 在数组上使用for循环_Java_Arrays_For Loop_Primes - Fatal编程技术网

Java 在数组上使用for循环

Java 在数组上使用for循环,java,arrays,for-loop,primes,Java,Arrays,For Loop,Primes,我应该计算数组中素数的根和平方 结果都应该存储在两个新数组中。我的解决办法是: import java.util.Arrays; import java.lang.Math; public class Array1 { public static void main(String[] args) { double[] primeNumbers = {3, 5, 7, 11, 13, 17}; for (int i = 0; i < prim

我应该计算数组中素数的根和平方

结果都应该存储在两个新数组中。我的解决办法是:

import java.util.Arrays;
import java.lang.Math;

public class Array1 {    
    public static void main(String[] args) {
        double[] primeNumbers = {3, 5, 7, 11, 13, 17};
        for (int i = 0; i < primeNumbers.length-1; i++) {
            double[] root = new double[primeNumbers.length-1];
            root[i] = Math.sqrt(primeNumbers[i]);
            if ( i == primeNumbers.length-2 ) {
                System.out.println( Arrays.toString( root ));
            }
        }

        for (int i = 0; i < primeNumbers.length-1; i++) {
            double[] square = new double[primeNumbers.length-1];
            square[i] = primeNumbers[i] * primeNumbers[i];
            if ( i == primeNumbers.length-2 ) {
                System.out.println( Arrays.toString( square ));
            }
        }
    }
}

请在此帮助我。

您正在for循环中声明输出数组。尝试在for循环之外声明它们,如下所示:

double[] root = new double[primeNumbers.length-1];
for (int i = 0; i < primeNumbers.length-1; i++) {

    root[i] = Math.sqrt(primeNumbers[i]);
    if ( i == primeNumbers.length-2 ) {
        System.out.println( Arrays.toString( root ));
    }
}
double[] square = new double[primeNumbers.length-1];
for (int i = 0; i < primeNumbers.length-1; i++) {

    square[i] = primeNumbers[i] * primeNumbers[i];
    if ( i == primeNumbers.length-2 ) {
        System.out.println( Arrays.toString( square ));
    }
}

double[]根=新的double[primeNumbers.length-1];
对于(int i=0;i
在询问与代码相关的问题时,您应该在问题中添加一个标记,指示代码使用的编程语言。
double[]root=new double[primeNumbers.length-1]在每次迭代中创建一个新数组。也许这是你的问题。请采取,通过,阅读,尝试学习如何使用调试器以及你需要存储在数组中的平方和根,或只是打印出来?还有,为什么只打印i==primeNumbers.length-2?为什么我们忽略数组的最后一个元素(我知道OP就是这样做的,但您的解决方案也是这样)。我想我不确定OP为什么会这样做。我同意这很奇怪。
double[] root = new double[primeNumbers.length-1];
for (int i = 0; i < primeNumbers.length-1; i++) {

    root[i] = Math.sqrt(primeNumbers[i]);
    if ( i == primeNumbers.length-2 ) {
        System.out.println( Arrays.toString( root ));
    }
}
double[] square = new double[primeNumbers.length-1];
for (int i = 0; i < primeNumbers.length-1; i++) {

    square[i] = primeNumbers[i] * primeNumbers[i];
    if ( i == primeNumbers.length-2 ) {
        System.out.println( Arrays.toString( square ));
    }
}