// Variation of the Diamond program that uses a parameterized writeStrings // method to eliminate the loop redundancy. public class Diamond3 { public static final int SIZE = 8; public static void main(String[] args) { drawDiamond(); drawDiamond(); drawX(); } public static void drawDiamond() { upTriangle(); downTriangle(); } public static void drawX() { downTriangle(); upTriangle(); } public static void upTriangle() { for (int row = 0; row < SIZE; row++) { writeStrings(SIZE - 1 - row, " "); System.out.print("/"); writeStrings(2 * row, "."); System.out.println("\\"); } } public static void downTriangle() { for (int row = SIZE - 1; row >= 0; row--) { writeStrings(SIZE - 1 - row, " "); System.out.print("\\"); writeStrings(2 * row, "."); System.out.println("/"); } } // prints count occurrences of text public static void writeStrings(int count, String text) { for (int i = 0; i < count; i++) { System.out.print(text); } } }