如何在java中使用for循环打印带有“*”的三角形?

时间:2012-06-07 13:36:29

标签: java for-loop console-output

我想使用for循环绘制一个带有如下星形的三角形,但我真的不知道如何做到这一点?三角形将是这样的:

*
**
***
****
*****
******
*******
********
*********
**********

等等。有人可以帮帮我吗?

public class Project1 {
    public static void main (String[] args){
        int c, d, e;
        for (c = 1 ; c <= 8 ; c++){
            for (d = 1 ; d <= c ; d++){
                System.out.print ("*");
            }
            System.out.println("");
        }

        for (e = 1 ; e <= 4 ; e++){
            System.out.println ("***");
        }
    } 
} 

这是我从互联网上找到的,但我不明白为什么它使用两个循环。 (我理解用于构建茎的那个。)

9 个答案:

答案 0 :(得分:5)

public static void main(String[] args)
{

    StringBuilder stars = new StringBuilder();

    for(int i = 0; i <= 10; i++)
    {
           stars.append("*");
           System.out.println(stars);
    }

}

或者使用嵌套循环:(这就是练习真的试图让你做的事情)

public static void main(String[] args)
{
    for(int i = 0; i <= 10; i++)
    {
        for(int j=0; j<=i; j++)
        {
            System.out.print("*");
        }
        System.out.print("\n");
    }
}

答案 1 :(得分:2)

你需要两个for循环;一个用于打印该行,另一个用于打印一行中的字符。当前行的编号可用于打印一定数量的星。

使用System.out.print("*")进行打印而不添加新行,在第二个循环结束时执行System.out.println()

我将循环的实现作为练习,这里是语法:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

答案 2 :(得分:1)

只是评论你的网络代码......

  1. for循环应始终从0开始,除非您有特定原因从1开始。从0开始练习它是一个很好的习惯,因为它在使用java arrays时会对你有帮助。
  2. 两个for循环彼此...外部循环只是控制三角形中有多少行(在这种情况下为8)。内循环正在写入该行的星数。这不是实现结果的最佳方式,但它可以正常工作。
  3. 底部的for循环写出星星看起来像树干。
  4. 希望这有助于您理解。

答案 3 :(得分:0)

这可以为您提供问题的解决方案。

class Seven 
{
public static void main(String arg[])
{
for(int i=0;i<=8;i++)
{
for(int j=8;j>=i;j--)
{
System.out.print(" ");
}
for(int k=1;k<=(2*i+1);k++)
{
System.out.print("*");
}
System.out.println("\n");
}
}
}

答案 4 :(得分:0)

import java.util.Scanner;
public class apple{
public static void main(String[] args){

int c,r;
for(c=1; c<=10; c++){
for(r=1; r<=c; r++){
System.out.print("*");
}
System.out.println();
}
}

答案 5 :(得分:0)

public class StarA {

public static void main(String[] args) {

    for( int i = 1; i <= 5; i++ )
    {
        for( int j = 0; j < i; j++ )
        {
            System.out.print("*");

        }
        System.out.println();
    }

    }
 }

答案 6 :(得分:0)

          import java.util.*;

          class StarForloop
{
          public static void main(String arg[])
    {
          Scanner ob=new Scanner(System.in); //getting input
          System.out.println("Enter any NO");

          int count=ob.nextInt(); 
        String ab="*";  // initialize string variable

          for(int i=1; i<=count; i++)
        {

           ab=ab+"*"; // here you add one another string
            System.out.println(ab);


        }           
    }
}

答案 7 :(得分:0)

for(int aj =5;aj>=1;aj--){

            for (int a1 = 0; a1 < aj; a1++) {
                System.out.print(" ");
            }
                    for(int a2 = 5;a2>=aj;a2--) {
                        System.out.print("$");
                    }
                for(int a2 = 5;a2>aj;a2--) {
                    System.out.print("$");
                }
            System.out.println();

答案 8 :(得分:0)

您只需要两个循环即可实现第三个循环,第三个循环无用,第一个外部循环用于行,内部循环用于打印“ *”。外部循环在这里用于更改行数并保持所需数量行。

public static void tri()
{ 
     for(int i=0;i<8;i++)
       {
          for(int j=0;j<=i;j++)
             {
                System.out.print("*");
                }
                   System.out.println();
                     }
}