我想制作一个提供此输出的程序:
*
**
***
****
***
**
*
最大星数是' n'但是,我的代码在这里出了问题。将不胜感激。
class test
{
public static void main(int n)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
System.out.print("*");
}
for(int x=n;x>=1;x--)
{
System.out.print("*");
}
System.out.println();
}
}
}
答案 0 :(得分:2)
你几乎就在那里 - 把它想象成一个直立的三角形,然后是一个倒三角形。在第一个中,有N行,每行具有越来越多的星号,从一个到N.在第二个中,每行的星号数量从N-1减少到1:
for (int i = 1; i <= n; ++i) {
for (int j = 0; j < i; ++j) {
System.out.print('*');
}
System.out.println();
}
for (int i = n - 1; i >= 1; --i) {
for (int j = 0; j < i; ++j) {
System.out.print('*');
}
System.out.println();
}
当然,通过提取内部for
循环可以使这更加优雅,它将每一行创建为自己的方法:
private static void printRow (int i) {
for (int j = 0; j < i; ++j) {
System.out.print('*');
}
System.out.println();
}
private static void main (String[] args) {
for (int i = 1; i <= n; ++i) {
printRow(i);
}
for (int i = n - 1; i >= 1; --i) {
printRow(i);
}
}