Joh*_*ape 5 java ascii for-loop draw ascii-art
我一直在尝试用 Java 来完成这个工作。画起来很复杂,至少对我来说是这样。
Q1 编写一个简单的 Java 程序,打印楼梯或图形,如下所示:
Run Code Online (Sandbox Code Playgroud)+---+ | | +---+---+ | | | +---+---+---+ | | | | +---+---+---+---+ | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+
我已经想出了一个解决方案,但还没有完成一半。这是我想出的代码
+---+
| |
+---+---+
| | |
+---+---+---+
| | | |
+---+---+---+---+
| | | | |
+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)
这就是它的作用。
+---+
| | |
+---+---+
| | |
+---+---+---+
| | |
+---+---+---+---+
| | |
+---+---+---+---+---+
| | |
+---++---++---++---++---+
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我并指导我使用我的代码吗?我希望有人能告诉我出了什么问题以及应该改变什么。
这是我对问题的解决方案。感谢您的拼图;)
public class Staircase {
public static final int SIZE = 5;
public static final int STAIR_WIDTH = 5;
public static final String TREAD = "-";
public static final String RISER = "|";
public static final String NOSING = "+";
public static final String HOLLOW = " ";
public static void main(String[] args)
{
StringBuilder step = new StringBuilder();
for (int i = 0; i < (STAIR_WIDTH - 2); ++i) { step.append(TREAD); }
StringBuilder hollow = new StringBuilder();
for (int i = 0; i < (STAIR_WIDTH - 2); ++i) { hollow.append(HOLLOW); }
StringBuilder tread = new StringBuilder();
for (int i = 0; i < SIZE; ++i) { tread.append(NOSING + step); }
tread.append(NOSING);
StringBuilder riser = new StringBuilder();
for (int i = 0; i < SIZE; ++i) { riser.append(RISER + hollow); }
riser.append(RISER);
for (int i = 0; i < SIZE; ++i) {
int offset = tread.length() - (((STAIR_WIDTH - 1) * i) + STAIR_WIDTH);
printSpaces(offset);
System.out.println(tread.substring(offset));
printSpaces(offset);
System.out.println(riser.substring(offset));
}
System.out.println(tread);
}
public static void printSpaces(int count)
{
for (int i = 0; i < count; ++i)
System.out.print(" ");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |