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 ));
}
}