用 for 循环绘制图形(数字)
draw figure(numbers) with for loops
我刚开始 Java,我的老师让我画出以下数字形状:
123456654321
2345665432
34566543
456654
5665
66
5665
456654
34566543
2345665432
123456654321
image
到目前为止,我可以使用以下代码绘制第一条线和中间的一部分:
int sz = 6;
for (int i =1;i<=sz;i++)
System.out.print(i);
for(int j =sz;j>1;j--)
System.out.print(j);
for(int i =1; i<=sz;i++){
System.out.println(i);
for(int j=0;j<=i;j++){
System.out.print(" ");
}
}
我在中间的其余部分遇到了麻烦 body。
任何人都可以通过使用嵌套 for 循环帮助我绘制那个吗?
你必须一行一行地走,因为println()
之后,你就不能回到那里了。
对于图案的上半部分,您可以使用它。
int sz = 6;
for(int d = 1;d<=sz;d++){
for (int i = d;i <= sz;i++) //for increasing numbers
System.out.print(i);
for(int j=sz;j>=d;j--) //for decreasing numbers
System.out.print(j);
System.out.println(); //for newline
for(int m=0;m<d;m++) // for spaces
System.out.print(" ");
}
首先你构建一个数组,然后遍历这些行并构建它们:
int currentItem = 1;
int items[] = new int[12];
for (int index = 0; index < items.length; index++) {
items[index] = (index < 6) ? currentItem++ : currentItem--;
}
for (int index2 = 0; index2 < 12; index2++) {
String line = "";
int limit = (index2 < 6) ? index2 : (12 - index2);
for (int index3 = 0; index3 < items.length; index3++) {
line += ((index3 >= limit) && (index3 < items.length - limit)) ? " " : items[index3];
}
System.out.println(line);
}
我刚开始 Java,我的老师让我画出以下数字形状:
123456654321
2345665432
34566543
456654
5665
66
5665
456654
34566543
2345665432
123456654321
image
到目前为止,我可以使用以下代码绘制第一条线和中间的一部分:
int sz = 6;
for (int i =1;i<=sz;i++)
System.out.print(i);
for(int j =sz;j>1;j--)
System.out.print(j);
for(int i =1; i<=sz;i++){
System.out.println(i);
for(int j=0;j<=i;j++){
System.out.print(" ");
}
}
我在中间的其余部分遇到了麻烦 body。 任何人都可以通过使用嵌套 for 循环帮助我绘制那个吗?
你必须一行一行地走,因为println()
之后,你就不能回到那里了。
对于图案的上半部分,您可以使用它。
int sz = 6;
for(int d = 1;d<=sz;d++){
for (int i = d;i <= sz;i++) //for increasing numbers
System.out.print(i);
for(int j=sz;j>=d;j--) //for decreasing numbers
System.out.print(j);
System.out.println(); //for newline
for(int m=0;m<d;m++) // for spaces
System.out.print(" ");
}
首先你构建一个数组,然后遍历这些行并构建它们:
int currentItem = 1;
int items[] = new int[12];
for (int index = 0; index < items.length; index++) {
items[index] = (index < 6) ? currentItem++ : currentItem--;
}
for (int index2 = 0; index2 < 12; index2++) {
String line = "";
int limit = (index2 < 6) ? index2 : (12 - index2);
for (int index3 = 0; index3 < items.length; index3++) {
line += ((index3 >= limit) && (index3 < items.length - limit)) ? " " : items[index3];
}
System.out.println(line);
}