简体   繁体   中英

How to fully print outer loop before inner loop (Java)

My goal is to print a chart that displays "enemy" number, x and y coordinates, then their distance in respect to the other "enemies", but with my following nested loop below, the enemy number, and coordinates are reversed with the distance numbers. I've tried adjusting the position of the codes, but they don't seem to fix the issue.

public static void main(String[] args) {
    
    // array of enemy coordinates
    int[] xCoords = {1, 4, 5, 5, 7, 10};
    int[] yCoords = {3, 4, 6, 2, 5, 2};
    
    
    System.out.println("________Enemy Distance Chart________");
    System.out.println("\t\t\t\t\t\tDistance To (Kilometers)");
    System.out.println("Enemies\t  X Coord  \tY Coord  \tE-0\tE-1\tE-2\tE-3\tE-4\tE-5");
    
    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 6; j++) {
            double distance = Math.sqrt((yCoords[j]-yCoords[i])*(yCoords[j]-yCoords[i]) + (xCoords[j]-xCoords[i])*(xCoords[j]-xCoords[i]));
            System.out.printf("%.2f\t", distance);  
        }
        // the following code below is somehow printed on the far right 
        System.out.println("E- " + i + "\t\t  " + xCoords[i] + "\t      " + yCoords[i]); 
    }
    
    


    
    for (int i = 0; i < 6; i++) {
        System.out.printf("E-" + i + "\t\t" + xCoords[i] + "\t\t" + yCoords[i] + "\t\t");
        for (int j = 0; j < 6; j++) {
            double distance = Math.sqrt((yCoords[j] - yCoords[i]) * (yCoords[j] - yCoords[i]) + (xCoords[j] - xCoords[i]) * (xCoords[j] - xCoords[i]));
            System.out.printf("%.2f\t", distance);
        }
        System.out.println();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM