I am trying to draw out a diamond in a frame. I figured my way through the top half, but when I come to the 2nd half I had attempted to invert the loops and problems came up. I played around switching operators just to see the result, but still nothing works. Please help. What am I not seeing.
JavaScript
x
// 1st Half of Diamond
// Creates Lines
for (int i = 1; i <= 3; i++) {
if (i == 1) {
System.out.print("+");
for (int h = 1; h <= 8; h++) {
System.out.print("-");
}
System.out.print("+" + "n");
}
System.out.print("|");
// Nested Loop Creates Spaces Left Side
for (int j = 4; j > i; j--) {
System.out.print(" ");
}
System.out.print("/");
// Nested Loop Creates Values Inside
for (int j = 1; j < i; j++) {
if (i % 2 == 0) {
System.out.print("--");
} else if (i == 1) {
System.out.print("\");
} else {
System.out.print("==");
}
}
System.out.print("\");
// Nested Loop Creates Spaces Right Side
for (int j = 4; j > i; j--) {
System.out.print(" ");
}
System.out.print("|");
System.out.print("n");
}
// Midpoint of Diamond
System.out.print("|<------>|" + "n");
//============================
//****HERE PROBLEMS ARISE****
// 2nd Half of Diamond
// Creates Lines
for (int i = 1; i <= 3; i++) {
System.out.print("|");
// Nested Loop Creates Spaces Left Side
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
System.out.println("\");
// Nested Loop Creates Values Inside
for (int j = 1; j < 2; j++) {
System.out.print("+");
for (int h = 1; h <= 8; h++) {
System.out.print("-");
}
System.out.print("+" + "n");
if (i % 2 == 0) {
System.out.print("-");
} else if (i == 3) {
System.out.print("/");
} else {
System.out.print("=");
}
}
}
Advertisement
Answer
I assume you’re trying to achieve this result:
JavaScript
public class Diamond {
public static void main(String[] args) {
// 1st Half of Diamond
// Creates Lines
for (int i = 1; i <= 3; i++) {
if (i == 1) {
System.out.print("+");
for (int h = 1; h <= 8; h++) {
System.out.print("-");
}
System.out.print("+" + "n");
}
System.out.print("|");
// Nested Loop Creates Spaces Left Side
for (int j = 4; j > i; j--) {
System.out.print(" ");
}
System.out.print("/");
// Nested Loop Creates Values Inside
for (int j = 1; j < i; j++) {
if (i % 2 == 0) {
System.out.print("--");
} else if (i == 1) {
System.out.print("\");
} else {
System.out.print("==");
}
}
System.out.print("\");
// Nested Loop Creates Spaces Right Side
for (int j = 4; j > i; j--) {
System.out.print(" ");
}
System.out.print("|");
System.out.print("n");
}
// Midpoint of Diamond
System.out.print("|<------>|" + "n");
// 2nd Half of Diamond
// Creates Lines
for (int i = 1; i <= 3; i++) {
System.out.print("|");
// Nested Loop Creates Spaces Left Side
for (int j = 1; j <= i; j++) {
System.out.print(" ");
}
System.out.print("\");
// Nested Loop Creates Values Inside
for (int j = 1; j <= i; j++) {
if (i == 2) {
System.out.print("-");
} else if (i == 1) {
System.out.print("====");
} else {
System.out.print("");
}
}
System.out.print("/");
// Nested Loop Creates Spaces Right Side
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
System.out.println("|");
}
System.out.print("+");
for (int h = 1; h <= 8; h++) {
System.out.print("-");
}
System.out.print("+" + "n");
}
}
Output:
JavaScript
+--------+
| / |
| /-- |
| /==== |
|<------>|
| ====/ |
| --/ |
| / |
+--------+