以下面的格式打印代码?我有一个代码,但我觉得很多不必要的4 for循环我可以用较小的for循环重现输出。
*
**
***
****
***
**
*
我的代码:
public static void main(String[] args) {
for(int i=0; i<=3; i++) {
for(int j=0; j<=i; j++) {
System.out.print("*");
}
System.out.println();
}
for(int j=1; j<=3; j++) {
for(int i=3; i>=j; i--) {
System.out.print("*");
}
System.out.println();
}
}
答案 0 :(得分:2)
您可以在一行代码中执行相同的操作(加上类和main
样板文件):
System.out.println("*\n**\n***\n****\n***\n**\n*");
答案 1 :(得分:2)
您可以将逻辑划分为一个方法,以获得n
星,如此,
// Build a String of n stars.
public static String getStars(int n) {
StringBuilder sb = new StringBuilder(n);
for (int i = 0; i < n; i++) {
sb.append("*");
}
return sb.toString();
}
然后用类似
的方式调用它public static void main(String[] args) {
int MAX = 4;
for (int i = 1; i <= MAX; i++) {
System.out.println(getStars(i));
}
for (int i = MAX - 1; i > 0; i--) {
System.out.println(getStars(i));
}
}
答案 2 :(得分:1)
只是为了lulz ...... (fill生成一串字符)
LinkedList<String> list = new LinkedList<String>();
final int size = 3;
list.add(fill('*', size));
for(int i = size - 1; i > 0; i--)
{
list.addFirst(fill('*', i));
list.addLast(fill('*', i));
}
for(String elem : list)
System.out.println(elem);
答案 3 :(得分:1)
一些不错的递归怎么样?
public static void main(String[] args) {
doRecursion(1);
}
public static void printSomeStars(int count)
{
for(int i=0;i<count;i++)
{
System.out.print("*");
}
System.out.println("");
}
public static void doRecursion(int count)
{
printSomeStars(count);
if (count <= 4)
{
doRecursion(count+1);
}
printSomeStars(count-1);
}