使用 for 循环在 Java 中绘制栅栏
Draw a fence in Java using for loops
我的任务是制作一个栅栏绘图程序。到目前为止,我可以让用户输入值来设置高度和宽度,并使用嵌套的 for 循环我可以将高度和宽度输出为“#”符号。问题是我需要它有一个 # 和 | 的边框。在中间。
目前 4 高 4 宽的栅栏看起来像这样
####
####
####
####
我需要它看起来像这样
####
#||#
#||#
####
public void draw() {
for (i = 1; i < height-1; i++) {
System.out.print("#");
for (j = 1; j < width-1; j++) {
System.out.print("|");
}
System.out.println("#");
}
fenceCount++;
}
什么时候可以休息一下。我有一个循环询问用户是否想要构建另一个类型为 y 或 n 的栅栏。在终止用户输入的最后 "n" 有没有人知道是否有比休息更好的方法来做到这一点; ?并且这里是单次休息 "ok" 吗?我听说 breaks 在循环中很草率。而且我总觉得我必须扭转我对while循环的想法。
您的围栏输出当前将完全用“#”填充
你说得对,顶行和底行只有'#'
对于剩余的行,对于第一列和最后一列中的条目,您需要 #,否则需要 |
这里有一些东西可以帮助你:
for (i = 1; i <= height; i++)
{
if(first or last row)
{
for (j = 1; j <= width; j++)
{
print#
}
}
else{
for (j = 1; j <= width; j++)
{
if(j=1 or j=last column)
print '#'
else
print '|'
}
}
System.out.println();
}
这会让你建好栅栏:-)
将draw()
更改为:
public void draw() {
String border = String.format("%0" + width +"d", 0).replace("0", "#");
System.out.println(border); // top-border
for (int i = 1; i < height-1; i++) {
System.out.print("#");
for (int j = 1; j < width-1; j++) {
System.out.print("|");
}
System.out.println("#");
}
System.out.println(border); // bottom-border
}
我的任务是制作一个栅栏绘图程序。到目前为止,我可以让用户输入值来设置高度和宽度,并使用嵌套的 for 循环我可以将高度和宽度输出为“#”符号。问题是我需要它有一个 # 和 | 的边框。在中间。
目前 4 高 4 宽的栅栏看起来像这样
####
####
####
####
我需要它看起来像这样
####
#||#
#||#
####
public void draw() {
for (i = 1; i < height-1; i++) {
System.out.print("#");
for (j = 1; j < width-1; j++) {
System.out.print("|");
}
System.out.println("#");
}
fenceCount++;
}
什么时候可以休息一下。我有一个循环询问用户是否想要构建另一个类型为 y 或 n 的栅栏。在终止用户输入的最后 "n" 有没有人知道是否有比休息更好的方法来做到这一点; ?并且这里是单次休息 "ok" 吗?我听说 breaks 在循环中很草率。而且我总觉得我必须扭转我对while循环的想法。
您的围栏输出当前将完全用“#”填充
你说得对,顶行和底行只有'#'
对于剩余的行,对于第一列和最后一列中的条目,您需要 #,否则需要 |
这里有一些东西可以帮助你:
for (i = 1; i <= height; i++)
{
if(first or last row)
{
for (j = 1; j <= width; j++)
{
print#
}
}
else{
for (j = 1; j <= width; j++)
{
if(j=1 or j=last column)
print '#'
else
print '|'
}
}
System.out.println();
}
这会让你建好栅栏:-)
将draw()
更改为:
public void draw() {
String border = String.format("%0" + width +"d", 0).replace("0", "#");
System.out.println(border); // top-border
for (int i = 1; i < height-1; i++) {
System.out.print("#");
for (int j = 1; j < width-1; j++) {
System.out.print("|");
}
System.out.println("#");
}
System.out.println(border); // bottom-border
}