编写一个只使用while循环打印数字金字塔的java程序

编写一个只使用while循环打印数字金字塔的java程序,java,nested-loops,Java,Nested Loops,它需要如下所示: 我有一个for循环代码可以工作,但我无法将其转换为正确的while循环 以下是for循环代码: 公共类NumPyramid{ 公共静态void main(字符串[]args){ int行=9; 对于(int i=1;i通常,这是将for循环转换为while循环的方式: for (initial; condition; iterate) { statement; } 变成 initial; while (condition) { statement;

它需要如下所示:

我有一个for循环代码可以工作,但我无法将其转换为正确的while循环

以下是for循环代码:

公共类NumPyramid{
公共静态void main(字符串[]args){
int行=9;

对于(int i=1;i通常,这是将
for
循环转换为while循环的方式:

for (initial; condition; iterate) {
    statement;
}
变成

initial;
while (condition) {
    statement;
    iterate;
}

这就是我所做的,它是有效的

  int rows = 9, i = 1;

   while (i <= rows)
    {
        int j = 1;
        while (j<=(rows-i)*2)
        {
            System.out.print(" ");
            j++;
        }
        int k = i;
        while (k >= 1)
        {
            System.out.print(" "+k);
            k--;
        }
        int l = 2;
        while (l<=i)
        {
            System.out.print(" "+l);
            l++;
        }
        System.out.println();
        i++;
    }
int行=9,i=1;

而(i您可以使用
StringBuilder
保存打印所需的整个字符串并用空格填充

对于初始步骤,您将
'1'
设置在中间,并打印字符串的内容。 然后向左和向右“移动”,设置下一个
i
并重复打印,直到所有行都完成。

更新
添加了
space
参数以控制金字塔中数字之间的距离

int n=9;
int i=1;
int space=2;//两个相邻数字之间的距离
int width=2*空格*(n-2)+1;//不包括0
StringBuilder sb=新的StringBuilder();

while(i++“我有一个<代码>用于<代码>循环代码,它可以工作”,那么怎么回事?这是做某些事情一定次数的正确方法。<代码>while<代码>循环用于其他类型的东西。@Federico这可能是家庭作业。“认识到家庭作业可能包括人为约束,并尊重这些约束”().@BrianMcCutchon您可能是对的(我在标题中遗漏了“仅使用一个while循环”)。让我们在我之前的评论前面加上“为了您未来的努力”,然后:)我不知道这种方式。谢谢。是的,在这种方法中,没有创建多个字符串。我使用了一个参数来控制数字之间的距离。