这是一个工作程序,下面的代码正在工作
使用嵌套的循环创建形状图案
for (i = 1; i <= numOfshape / 2 + 1; i++) {
for (j = i; j < numOfshape; j++) {
System.out.print(" ");
}
for (k = 1; k < (i + numOfshape); k++) {
System.out.print("x ");
}
System.out.println();
}
for (i = numOfshape/2; i >= 1; i--) {
for (j = numOfshape; j > i; j--) {
System.out.print(" ");
}
for (k = 1; k < (i + numOfshape); k++) {
System.out.print("x ");
}
System.out.println();
}
预期的输出总共有5行,因此前三行将在第一个Outer循环中,而后两行将在第二个Outer循环中。
下面是工作代码-
for (i = 1; i <= numOfshape / 2 + 1; i++) {
for (j = i; j < numOfshape; j++) {
System.out.print(" ");
}
for (k = 1; k < (i + numOfshape); k++) {
System.out.print("x ");
}
System.out.println();
}
for (i = numOfshape/2; i >= 1; i--) {
for (j = numOfshape; j > i; j--) {
System.out.print(" ");
}
for (k = 1; k < (i + numOfshape); k++) {
System.out.print("x ");
}
System.out.println();
}
对于所有偶数和奇数,六边形的行数等于输入numOfshape
。下面的代码将起作用。
int rows=numOfshape;
if (numOfshape%2==0){
rows--;
}
for (i = 1; i <= rows / 2+1 ; i++) {
for (j = i; j < numOfshape; j++) {
System.out.print(" ");
}
for (k = 1; k < (i + numOfshape); k++) {
System.out.print("x ");
}
System.out.println();
}
for (i = numOfshape/2; i >= 1; i--) {
for (j = numOfshape; j > i; j--) {
System.out.print(" ");
}
for (k = 1; k < (i + numOfshape); k++) {
System.out.print("x ");
}
System.out.println();
}
或者如果行数不必等于输入if
,则可以删除第一个numOfShape
条件。