Java 用环完成三角形
我正在尝试制作一个直角三角形,它在Java中与循环类似:Java 用环完成三角形,java,for-loop,geometry,Java,For Loop,Geometry,我正在尝试制作一个直角三角形,它在Java中与循环类似: + /| / | / | / | +----+ 程序需要args作为int来确定三角形每边的大小。现在这是我到目前为止的代码: public static void main(String[] args) { int x = Integer.parseInt(args[0]); for (int i = 0; i <= x; i++) { for
+
/|
/ |
/ |
/ |
+----+
程序需要args作为int来确定三角形每边的大小。现在这是我到目前为止的代码:
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
for (int i = 0; i <= x; i++) {
for (int j = x; j >= i; j--) {
System.out.print(" ");
}
System.out.println("/");
}
System.out.print("+");
for (int j = 0; j < x; j++) {
System.out.print("-");
}
System.out.print("+");
}
那么我应该如何处理这个问题呢?我尝试了一些for循环的组合,但到目前为止,它通常打印出一个杂乱无章的形状,而不是一个实际的三角形。您就快到了:在打印
“/”的嵌套循环中,将println
替换为print
。添加第二个打印x-j
空格的循环,然后打印|
。最后,在进入第一个循环之前,添加一条语句以打印+
。就是这样
优化代码时,请考虑编写帮助器方法:
void printN(String str, int numTimes) {
// Prints numTimes copies of str
}
这样,您就可以将多个循环“flod”到一个printN
调用中。比如说,
for (int j = x; j >= i; j--) {
System.out.print(" ");
}
将成为
printN(" ", x-i);
若要为管道符号获得正确的空间量,需要为循环再添加一个
在这个for循环中,您将把迭代计数器设置为等于外部循环迭代计数器。然后在for循环中使用字符串生成器。在每个循环中,您将向字符串生成器添加一个空格。然后,添加最后一个空格后,将/放在空格中,将|放在末尾
这是我对一个明显的学校问题最多的回答。学习的唯一方法是做朋友 publicstaticvoidmain(字符串[]args){
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
for (int j = x+1; j >= 0; j--) {
System.out.print(" ");
}
System.out.println("+");
for (int i = 0; i <= x; i++) {
for (int j = x; j >= i; j--) {
System.out.print(" ");
}
System.out.print("/");
for (int k = 0; k < i; k++) {
System.out.print(" ");
}
System.out.println("I");
}
System.out.print("+");
for (int j = 0; j < x+1; j++) {
System.out.print("-");
}
System.out.print("+");
}
intx=Integer.parseInt(args[0]);
对于(int j=x+1;j>=0;j--){
系统输出打印(“”);
}
System.out.println(“+”);
对于(int i=0;i=i;j--){
系统输出打印(“”);
}
系统输出打印(“/”);
对于(int k=0;k
由于/
和|
在同一行中,您只是缺少在同一语句中打印|
,但中间有空格。计算出您需要多少空格,并将它们添加到/
和|
之间。我不明白为什么有人降级了这个。它很好用。至少给我一个评论,不是我的反对票,但是一个小小的解释怎么样?你的答案很模糊。我的感觉是Doh不是在寻求施舍——他对开悟感兴趣。我明白了!谢谢你的反馈。当我完成代码并想要复制和解释时,我注意到其他人提到他必须简单地使用print进行打印/因此我认为我的代码是互补的。迈克尔,我再次感谢你的反馈。
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
for (int j = x+1; j >= 0; j--) {
System.out.print(" ");
}
System.out.println("+");
for (int i = 0; i <= x; i++) {
for (int j = x; j >= i; j--) {
System.out.print(" ");
}
System.out.print("/");
for (int k = 0; k < i; k++) {
System.out.print(" ");
}
System.out.println("I");
}
System.out.print("+");
for (int j = 0; j < x+1; j++) {
System.out.print("-");
}
System.out.print("+");
}