同时循环绘制钻石

时间:2012-04-27 22:58:23

标签: java while-loop

我在使用while循环时遇到了一些问题。我有一个任务是打印一个带有2个输入变量的钻石: 1)整数表示中间的行数/最大字符数 2)要打印的字符: Psuedo代码: 7 = int $ = char 程序应该打印(并在左侧占用空格): http://pastebin.com/cspgz3bA

我的while循环似乎很乱。现在他们正在打印(*模拟空间): http://pastebin.com/cspgz3bA

我发现将钻石分成两个三角形(上部和下部)是解决这个问题的最简单方法,但是我的代码似乎是完全垃圾...

编辑::这仅适用于三角形的上半部分,因此(行/ 2)+1 - 它意味着在完成中间行后停止。

    rows = integerInput;
    maxSpace = integerInput;

    while (currentRow <=((rows/2)+1)) {
        spaceReq = ((maxSpace -1)/2);    // determines spaces required
            while (spaces < spaceReq) {  

                System.out.print("*");
                spaces++;
            }
            while (charPrinted < charReq){
                System.out.print(charInput);
                charPrinted++;

            }               
            currentRow++;
            maxSpace--;
            charReq = charReq +2;
            System.out.println("");
        }

有人可以指出为什么这适用于第一次迭代,但在下一次迭代时会中断?

谢谢!

1 个答案:

答案 0 :(得分:3)

需要将

charPrintedspaces重置为外部循环顶部的0