Java 在画钻石的时候

Java 在画钻石的时候,java,while-loop,Java,While Loop,我对while循环有一些问题。我的任务是打印一个带有2个输入变量的菱形: 1) 整数表示行数/中间最大字符数 2) 要打印的字符: Psuedo代码: 7=整数 $=字符 程序应打印(并说明左侧的空格): 我的while循环看起来一团糟。现在他们正在打印(*模拟空间): 我发现将菱形分成两个三角形(上下)是解决这个问题的最简单方法,但是我的代码似乎完全是垃圾 编辑::这只适用于三角形的上半部分,因此(行/2)+1-它意味着在完成中间行后停止 rows = integerInput;

我对while循环有一些问题。我的任务是打印一个带有2个输入变量的菱形: 1) 整数表示行数/中间最大字符数 2) 要打印的字符: Psuedo代码: 7=整数 $=字符 程序应打印(并说明左侧的空格):

我的while循环看起来一团糟。现在他们正在打印(*模拟空间):

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

编辑::这只适用于三角形的上半部分,因此(行/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("");
        }
行=整数输入;
maxSpace=整数输入;

虽然(当前行
charPrinted
spaces
需要在外循环的顶部重置为
0

charPrinted
spaces
需要在外循环的顶部重置为
0

您愿意发布更完整的代码吗?输入/输出?理想情况下,发布SSCCE对不起,我应该ld已经这样做了-jpm给了我没有它的答案:)你愿意发布一个更完整的代码吗?输入/输出?理想情况下,发布一个SSCCE对不起,我应该这样做-jpm给了我没有它的答案:)呼!就在那里。我完全忘了重置它们。你是一位绅士和学者:)我现在明白了:**x**xxx**xxxxx*xxxxxxx*xxxxxxxxx这并不完美,但我可以稍微调整一下我的数学。再次感谢是的,这里的诀窍是,
maxSpace
应该预先计算为
integerInput/2
。不需要负1,因为这是整数除法,将为您截断。然后,只需使用
maxSpace
而不是尝试计算
spaceReq
。因此,第一个内部循环将是
而(spaces
,循环末尾的变异仍然是
maxSpace--
.Huzah!就在那里。我完全忘了重置它们。你是一位绅士和学者:)我现在明白了:**x**xxx**xxxxx*xxxxxxx*xxxxxxxxx这并不完美,但我可以稍微调整一下我的数学。再次感谢是的,这里的诀窍是,
maxSpace
应该预先计算为
integerInput/2
。不需要负1,因为这是整数除法,将为您截断。然后,只需使用
maxSpace
而不是尝试计算
spaceReq
。因此,第一个内部循环是
而(spaces
,循环末尾的变异仍然是
maxSpace--