我在使用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("");
}
有人可以指出为什么这适用于第一次迭代,但在下一次迭代时会中断?
谢谢!
答案 0 :(得分:3)
charPrinted
和spaces
重置为外部循环顶部的0
。