試試這個:
void display()
{
int i=0,k;
for(i=1;i<=5;i++)
{
for(k=1;k<=5;k++)
{
if (k < i) {
System.out.print(i);
} else {
System.out.print(k);
}
}
System.out.println();
}
}
你的模式是依賴於行號i
:
- 行n應該打印n,n次
- 使用以n開始的incresing整數填充行的剩餘部分,直到行的長度/最大行數。
你可以概括它使圖案更具有可讀性:
void display(int dimension)
{
int lineNumber = 0, linePosition = 0;
int numberOfLines = dimension, numberOfCharactersPerLine = dimension;
for(lineNumber =1;lineNumber<=numberOfLines ; lineNumber++)
{
for(linePosition = 1;linePosition <= numberOfCharactersPerLine ;linePosition++)
{
if (linePosition < lineNumber) {
System.out.print(lineNumber);
} else {
System.out.print(linePosition);
}
}
System.out.println();
}
}
在這裏我們看到有明確的命名變量的說明。如果linePosition
(我們決定打印的行中的當前字符)小於行號,我們應該打印行號,否則打印字符位置。
這可能是更好的想象通過將它描繪成一個帶有座標的二維矩陣,然後根據這些座標來填充它。
...發生了什麼/不發生/爆炸? –