Reputation: 35
When i run my program, it writes to a file but it only writes the first coordinate:
[79.93768569366277, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
[0.0, 0.0],
The rest are [0.0. 0.0] where it should be some other random numbers generated by the program.
Why is that? The program is to write the coordinates generated by the program to another file. CODE:
import java.io.*;
import java.util.Arrays;
public class J4
{
public static void main (String [] args) throws IOException
{
int numpoints = 100, dimension = 2, length = 100;//numpoints is set to 100, dimension is set to 2, length is set to 100
//arrays are initializewd and declared
double [] lengthscale = new double [dimension];
double [][] locations = new double [numpoints][dimension];
PrintWriter fileOut = new PrintWriter (new FileWriter ("arrayNumPoints.txt"));
writefile(lengthscale, locations, dimension, numpoints, length);
for(int m=0; m <length; m++){//for loop
fileOut.println(Arrays.toString(locations[m]) + ", ");//writes to file
}
fileOut.close ();//close file
}//end main
public static Double writefile(double lengthscale[], double locations[][], int dimension, int numpoints, int length)throws IOException
{
for (int a = 0; a < dimension; a++) {// for loop runs while a is less than dimension
lengthscale[a] = length;// stores array
}// end for loop
for (int x=0; x < numpoints; x++){//for loop runs while x is less than numpoints
for (int y=0; y < dimension; y++){//nested for loop runs while y is less than dimension
locations [x][y]= (2 * Math.random() - 1) * lengthscale[y];//creates the range and choses random point within
return locations[x][y];
}//end nested for loop
}//end for loop
//if program doesnt run through loop.. alternative return statement (but
double b= 1;
return b;
}//end writefile methos
}//end cass
Upvotes: 0
Views: 83
Reputation: 533492
This is where a debugger would help.
It would show you that you have a return inside your loop and you return after the very first location[x][y] is set. Remove the return statement as it is not needed, and I suggest you try your debugger as it is designed to help you find bugs.
Upvotes: 1