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