如何使用for循环打印此内容?

时间:2019-04-17 05:49:10

标签: java

如何使用for循环打印此内容?

     1
    22
   333
  4444
 55555

我已经尝试过了。但这不是在打印我想要打印的内容。

public class void main(String[] args) {
int last = 5, first = 1;
for (int i = 1; i <= last; i++) {
    for (int j = last; j > i; j++) {
        System.out.print(" ");
    }
    for (int k = i; k >= 1; k--){
        System.out.print(k);
    }
    System.out.println();  
}

}

它只是打印出来。

     1
    21
   321
  4321
 54321

4 个答案:

答案 0 :(得分:3)

如您所见,第一次打印是正确的,然后是k等于i的时候,所以只需打印i

System.out.print(i);

修改

根据您编辑的代码,进行上述更改,请

for (int j = last; j > i; j--) {    

输出

    1
   22
  333
 4444
55555

最终

    int last = 5;
    for (int i = 1; i <= last; i++) {
        for (int j = last; j > i; j--) {
            System.out.print(" ");
        }
        for (int k = i; k >= 1; k--){
            System.out.print(i);
        }
        System.out.println();  
    }

答案 1 :(得分:1)

您的新问题解决方案只需将k更改为i System.out.print(i)

        int last = 5, first = 1;
    for (int i = 1; i <= last; i++) {
        for (int j = last; j > i; j--) {
            System.out.print(" ");
        }
        for (int k = i; k >= 1; k--){
            System.out.print(i);
        }
        System.out.println();
    }

输出:

       1
      22
     333
    4444
   55555

答案 2 :(得分:0)

在每个循环中,给定数字i之前的空白数为maxNumber-i,当前数字显示的次数为i:

let clientcontract=this.state.customer.filter(cust => {
    return this.state.addclient.some(client => {
        return cust.id === client.id  // comparing customer and client id
    });
}).map(cust => cust.name);

答案 3 :(得分:0)

要获得有效的代码,首先用文字描述详细的解决方案将很有帮助。可能是:

  • 要打印高度为height的三角形,请分别打印从1到n的每一行。
    • 要打印一行row,请确定:
      • 它需要多少空间。
      • 需要多少位数。
      • 要打印的数字。
      • 要打印的数字与行号row相同。
      • 数字digits与行号row相同。
      • spaces的数量取决于行的总长度。
      • 空格数为width - digits
      • 要重复打印字符,请使用for循环,从0开始计数,但不包括重复字符。

此描述然后翻译为以下代码:

public static void main(String[] args) {
    int height = 5;
    int width = height;   // can also be larger than height

    for (int row = 1; row <= height; row++) {
        int digit = row;
        int digits = row;
        int spaces = width - digits;

        for (int i = 0; i < spaces; i++) {
            System.out.print(' ');
        }
        for (int i = 0; i < digits; i++) {
            System.out.print(digit);   // assuming that digit needs only a single character to print
        }
        System.out.println();
    }
}

当然,此程序比其他程序长,但是使用调试器逐步执行该程序时,您会在变量中获取有关当前状态的所有信息。通过查看变量值,您总是可以问自己:这有意义吗,spacesdigitswidth是否适合?

该程序还将整个工作分为两个阶段。在第一阶段,确定要打印的内容和打印的数量,然后仅打印它。