“while”循环未正确迭代

我应该使用循环打印以下输出:


            1 

          2 1 

        3 2 1 

      4 3 2 1 

    5 4 3 2 1 

  6 5 4 3 2 1 

7 6 5 4 3 2 1 

此模式中的最大数字(在此示例中为 7)由用户输入确定。以下是该模式的适用代码:


index=patternLength+1; n=1;     //These values are all previously intitialized

while (index!=1) {

    index--;

    printSpaces((index*2)-2);   //A static method that prints a certain number of spaces

    while(n!=1) {

        n--;

        System.out.print(n + " ");

    }

    System.out.print("\n");

    n=patternLength+1-index;

}

这是用户输入“7”的错误输出:




        1 

      2 1 

    3 2 1 

  4 3 2 1 

5 4 3 2 1 

错误输出前有两个空行;这些行具有完整/正确模式所需的正确数量的空格,但由于某种原因,实际数字在循环中开始打印得太“晚”。 换句话说,正确示例中出现在“1, 2 1”之前的空格在错误输出中。缺少一些数字并使不正确的示例不正确。


UYOU
浏览 138回答 2
2回答

FFIVE

好,我知道了。    index=patternLength+1; n=1;int nSetter=1;    //Loop C    System.out.println("Pattern C:");    while (index!=1) {        index--;        printSpaces((index*2)-2);        while(n!=0) {            System.out.print(n + " ");            n--;        }        System.out.print("\n");        nSetter++;        n = nSetter;    }我的问题是我的“n”需要上下移动,所以额外的变量“nSetter”似乎已经解决了这个问题,尽管这可能是一个迂回的解决方案。任何。感谢@Andreas 为我指明了正确的方向,感谢@JohnKugelman 的帮助编辑。

慕尼黑5688855

请尝试此代码,您的第二个 while 循环不正确。int index = patternLength + 1;        int n = 2;     //These values are all previously intitialized        int i = 1;        while (index != 1) {            index--;            printSpaces((index * 2) - 2);   //A static method that prints a certain number of spaces            while (n != 1) {                n--;                System.out.print(n + " ");            }            System.out.print("\n");            i++;            n = i+1;        }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java