java - 在循环中创建数字模式

标签 java nested-loops bluej

该模式应如下所示:

12345
22345
33345
44445
55555

我已经尝试过:

 import java.io.*;
 class Pattern
 {
    void display() 
    {
        int i=0,k;
        for(i=1;i<=5;i++)
        {
             for(k=1;k<=5;k++)
             {
                 System.out.print(i+" ");
             }
             System.out.println();
        }
    }    
}

最佳答案

试试这个:

void display() 
{
    int i=0,k;
    for(i=1;i<=5;i++)
    {
         for(k=1;k<=5;k++)
         {
             if (k < i ) {
                 System.out.print(i);
             } else {
                 System.out.print(k);
             }
         }
         System.out.println();
    }
}

您的模式取决于行号i:

  1. 第 n 行应该打印 n, n 次
  2. 用从 n 开始的递增整数填充该行的剩余部分,直到该行的长度/最大行数。

您可以概括它以使模式更具可读性:

void display(int dimension) 
{
    int lineNumber = 0, linePosition = 0;
    int numberOfLines = dimension, numberOfCharactersPerLine = dimension;

    for(lineNumber =1;lineNumber<=numberOfLines ; lineNumber++)
    {
         for(linePosition = 1;linePosition <= numberOfCharactersPerLine ;linePosition++)
         {
             if ( linePosition < lineNumber ) {
                 System.out.print(lineNumber);
             } else {
                 System.out.print(linePosition);
             }
         }
         System.out.println();
    }
}

这里我们看到带有显式命名变量的指令。如果linePosition(我们决定打印的行中的当前字符)小于行号,我们应该打印行号,否则打印字符位置。

通过将其描绘为带有坐标的二维矩阵,然后根据这些坐标来填充它,可能会更好地想象这一点。

关于java - 在循环中创建数字模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23275594/

相关文章:

java - 更新 JavaFX 标签不适用于数据绑定(bind)

java - 如何在一个 Maven 命令中调用两个不同的配置文件?

perl - 如何在没有硬编码循环的情况下创建多个列表的组合?

javascript - 使用循环和条件语句比较数组中的元素

java - 如何在 DrawingPanel 中将按键按下为字符

java - java excel api 可以满足我的要求吗?

java - 在 hazelcast 和 Java 中以编程方式设置 Near Cache 验证 Near 缓存是否从本地缓存返回数据

Python:嵌套 `for` 循环

java - 数数不存在的东西?

java - 调理使用哪种方法