-1

我想用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 ("***");
        }
    } 
} 

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

4

9 回答 9

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");
    }
}
于 2012-06-07T13:44:08.277 回答
2

您将需要两个 for 循环;一个打印行,一个打印一行中的字符。当前行的编号可以用来打印一定数量的星星。

用于System.out.print("*")在不添加新行的情况下打印,在第二个循环结束时执行System.out.println()

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

于 2012-06-07T13:44:37.523 回答
1

只是为了评论您在互联网上找到的代码......

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

希望这有助于您的理解。

于 2012-06-07T13:53:04.690 回答
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();
    }

    }
 }
于 2014-07-07T04:37:11.977 回答
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");
}
}
}
于 2012-09-11T19:14:58.373 回答
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();
}
}
于 2013-09-05T04:36:47.607 回答
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);


        }           
    }
}
于 2018-01-23T09:36:08.023 回答
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();
                     }
}
于 2019-08-03T07:35:49.607 回答
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();
于 2019-08-03T00:55:34.633 回答