class MonkeyLoop {
    //The area between class definition and the 1st method is where we keep data for object in Java
    String [][] monkeys;    //2D Array: AP CSA Unit 8: 2D array of strings
                            //2D array is like a grid [x][y]
                            // or like a spreadsheet [row][column]

    /**
     * Constructor initializes a 2D array of Monkeys
     */
    public MonkeyLoop() {
        //Storing Data in 2D arrays
        monkeys = new String[][]{   //2D array above is just a name, "new" makes a container ("object")
                //Monkey 0
                {
                        "ʕง ͠° ͟ل͜ ͡°)ʔ ",      //[0][0] eyes
                        "  \\_⏄_/  ",      //[0][1] chin
                        "  --0--   ",       //[0][2] body
                        "  ⎛   ⎞   "        //[0][3] legs
                },
                //Monkey 1
                {
                        " ʕ༼ ◕_◕ ༽ʔ",       //[1][0]
                        "  \\_⎏_/  ",
                        "  ++1++  ",
                        "   ⌋ ⌊   "
                },
                //Monkey 2
                {
                        " ʕ(▀ ⍡ ▀)ʔ",       //[2][0]
                        "  \\_⎐_/ ",
                        "  <-2->  ",
                        "  〈  〉 "
                },
                //Monkey 3
                {
                        "ʕ ͡° ͜ʖ ° ͡ʔ",        //[3][0]
                        "  \\_⍾_/  ",
                        "  ==3==  ",
                        "  _/ \\_  "
                },
                //Monkey 4
                {
                        "  (◕‿◕✿) ",          //[4][0]
                        "  \\_⍾_/ ",          //[4][1]
                        "  ==4==  ",          //[4][2]
                        "  _/ \\_ "           //[4][3]
                },

        };
    }

    /**
     * Loop and print monkeys in array
     * ... repeat until you reach zero  ...
     */
    public void printPoem() {
        //begin the poem
        System.out.println();
        System.out.println("Monkey Jumpers Poem in Java Loopy");

        // monkeys (non-primitive) defined in constructor knows its length
        int monkeyCount = monkeys.length;
        for (int i = monkeyCount; i > 0; i--){  //loops through 2D array length backwards
            System.out.println(i + " little monkeys jumping on the bed...");

            //how many separate parts are there in a monkey monkey?
            for (int col = 0; col < monkeys[0].length; col++) {  /
                for (int row = 0; row < i; row++) {

                    // prints specific part of the monkey from the column
                    System.out.print(monkeys[row][col] + "\t");
                }
                    //this is new line between separate parts
                    System.out.println();
                

                //this new line gives separation between stanza of poem
                System.out.println();
            }

            //countdown for poem, decrementing monkeyCount variable by 1
            monkeyCount -= 1;
        }

        //out of all the loops, prints finishing messages
        System.out.println("No more monkeys jumping on the bed");
        System.out.println("0000000000000000000000000000000000");
        System.out.println("             THE END              ");
    }

    /**
    * A Java Driver/Test method that is the entry point for execution
    */
    public static void main(String[] args)  {
        new MonkeyLoop().printPoem();   //a new monkey list and output in one step
    }

}
MonkeyLoop.main(null);
Monkey Jumpers Poem in Java Loopy
5 little monkeys jumping on the bed...
ʕง ͠° ͟ل͜ ͡°)ʔ 	 ʕ༼ ◕_◕ ༽ʔ	 ʕ(▀ ⍡ ▀)ʔ	ʕ ͡° ͜ʖ ° ͡ʔ	  (◕‿◕✿) 	

  \_⏄_/  	  \_⎏_/  	  \_⎐_/ 	  \_⍾_/  	  \_⍾_/ 	

  --0--   	  ++1++  	  <-2->  	  ==3==  	  ==4==  	

  ⎛   ⎞   	   ⌋ ⌊   	  〈  〉 	  _/ \_  	  _/ \_ 	

4 little monkeys jumping on the bed...
ʕง ͠° ͟ل͜ ͡°)ʔ 	 ʕ༼ ◕_◕ ༽ʔ	 ʕ(▀ ⍡ ▀)ʔ	ʕ ͡° ͜ʖ ° ͡ʔ	

  \_⏄_/  	  \_⎏_/  	  \_⎐_/ 	  \_⍾_/  	

  --0--   	  ++1++  	  <-2->  	  ==3==  	

  ⎛   ⎞   	   ⌋ ⌊   	  〈  〉 	  _/ \_  	

3 little monkeys jumping on the bed...
ʕง ͠° ͟ل͜ ͡°)ʔ 	 ʕ༼ ◕_◕ ༽ʔ	 ʕ(▀ ⍡ ▀)ʔ	

  \_⏄_/  	  \_⎏_/  	  \_⎐_/ 	

  --0--   	  ++1++  	  <-2->  	

  ⎛   ⎞   	   ⌋ ⌊   	  〈  〉 	

2 little monkeys jumping on the bed...
ʕง ͠° ͟ل͜ ͡°)ʔ 	 ʕ༼ ◕_◕ ༽ʔ	

  \_⏄_/  	  \_⎏_/  	

  --0--   	  ++1++  	

  ⎛   ⎞   	   ⌋ ⌊   	

1 little monkeys jumping on the bed...
ʕง ͠° ͟ل͜ ͡°)ʔ 	

  \_⏄_/  	

  --0--   	

  ⎛   ⎞   	

No more monkeys jumping on the bed
0000000000000000000000000000000000
             THE END              

Ants Marching up the Hill array

class AntLoop {
    //The area between class definition and the 1st method is where we keep data for object in Java
    String [][] ants;    //2D Array: AP CSA Unit 8: 2D array of strings
                            //2D array is like a grid [x][y]
                            // or like a spreadsheet [row][column]

    /**
     * Constructor initializes a 2D array of Monkeys
     */
    public AntLoop() {
        //Storing Data in 2D arrays
        ants = new String[][]{   //2D array above is just a name, "new" makes a container ("object")
                //ant 0
                {
                        " - - ",      //[0][0] eyes
                        " >v< ",      //[0][1] chin
                        " >O< ",       //[0][2] body
                        " >O<  "        //[0][3] legs
                },
                //ant 1
                {
                        " | | ",       //[1][0]
                        " 0 0  ",
                        " :X: ",
                        " :X:  "
                },
                //ant 2
                {
                        " *  * ",       //[2][0]
                        " '-0-' ",
                        " --0-- ",
                        " .-0-. "
                },
                //ant 3
                {
                        " - - ",        //[3][0]
                        " -o- ",
                        " - - ",
                        " -o- "
                },
                //ant 4
                {
                        " }  { ",          //[4][0]
                        " '--' ",          //[4][1]
                        " ---- ",          //[4][2]
                        " .--. "           //[4][3]
                },

        };
    }

    /**
     * Loop and print monkeys in array
     * ... repeat until you reach zero  ...
     */
    public void printPoem() {
        //begin the poem
        System.out.println();
        System.out.println("Ants Marching up a Hill");

        // monkeys (non-primitive) defined in constructor knows its length
        int antCount = 0;
        for (int i = 0; i<=5; i++)  //loops through 2D array length backwards
        {

            //this print statement shows current count of ants
            //  concatenation (+) of the loop variable and string to form a countdown message
            System.out.println("The ants go marching "+(i)+" by " + (i) + ", hurrah hurrah");

            
            for (int row = 0; row < antCount; row++) {  //cycles through "cells" of 2d array

                /*cycles through columns to print
                each monkey part by part, will eventually print entire column*/
                for (int col = 0; col < ants[row].length; col++) {

                    // prints specific part of the monkey from the column
                    System.out.print(ants[row][col] + " ");

                    //this is new line between separate parts
                    System.out.println();
                }

                //this new line gives separation between stanza of poem
                System.out.println();
            }

            //countdown for poem, decrementing antCount variable by 1
            antCount ++;
        }

        //out of all the loops, prints finishing messages
        System.out.println("And they all go marching down into the ground");
        System.out.println("             Fin              ");
    }

    /**
    * A Java Driver/Test method that is the entry point for execution
    */
    public static void main(String[] args)  {
        new AntLoop().printPoem();   //a new ant list and output in one step
    }

}
AntLoop.main(null);
Ants Marching up a Hill
The ants go marching 0 by 0, hurrah hurrah
The ants go marching 1 by 1, hurrah hurrah
 - -  
 >v<  
 >O<  
 >O<   

The ants go marching 2 by 2, hurrah hurrah
 - -  
 >v<  
 >O<  
 >O<   

 | |  
 0 0   
 :X:  
 :X:   

The ants go marching 3 by 3, hurrah hurrah
 - -  
 >v<  
 >O<  
 >O<   

 | |  
 0 0   
 :X:  
 :X:   

 *  *  
 '-0-'  
 --0--  
 .-0-.  

The ants go marching 4 by 4, hurrah hurrah
 - -  
 >v<  
 >O<  
 >O<   

 | |  
 0 0   
 :X:  
 :X:   

 *  *  
 '-0-'  
 --0--  
 .-0-.  

 - -  
 -o-  
 - -  
 -o-  

The ants go marching 5 by 5, hurrah hurrah
 - -  
 >v<  
 >O<  
 >O<   

 | |  
 0 0   
 :X:  
 :X:   

 *  *  
 '-0-'  
 --0--  
 .-0-.  

 - -  
 -o-  
 - -  
 -o-  

 }  {  
 '--'  
 ----  
 .--.  

And they all go marching down into the ground
             Fin