为了账号安全,请及时绑定邮箱和手机立即绑定

“while”循环未正确迭代

“while”循环未正确迭代

UYOU 2022-07-06 18:36:21
我应该使用循环打印以下输出:            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 intitializedwhile (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”之前的空格在错误输出中。缺少一些数字并使不正确的示例不正确。
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

好,我知道了。


    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 的帮助编辑。


查看完整回答
反对 回复 2022-07-06
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

请尝试此代码,您的第二个 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;

        }


查看完整回答
反对 回复 2022-07-06
  • 2 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信