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

我正在尝试制作一个直角三角形,它在Java中与循环类似:

     +
    /|
   / |
  /  |
 /   |
+----+
程序需要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("+");
}