如何在Java中打印三角形?

时间:2013-06-16 10:20:25

标签: java

我是Java的初学者。我正在使用Deitel和Deitel来学习Java,练习中的一个问题要求你打印三角形。这是一个问题:

  

(三角形打印程序)编写一个应用程序,分别显示以下模式,一个在另一个之下。使用for循环生成模式。所有星号(*)应该由System.out.print( '*' );形式的单个声明打印,这使得星号并排打印。 System.out.println();形式的陈述可用于移至下一行。 System.out.print('');`形式的语句可用于显示最后两个模式的空间。程序中不应该有其他输出语句。

(a)   (b)        (c)   (d)
* ********** ********** *
** ********* ********* **
*** ******** ******** ***
**** ******* ******* ****
***** ****** ****** *****
****** ***** ***** ******
******* **** **** *******
******** *** *** ********
********* ** ** *********
********** * * **********

我有一个,但我需要一些b,c和d的帮助。提前致谢! :)

P.S。这是我的代码:

public class p5_15
{
    public static void main( String[] args )
    {

        int line;
        int star;

        for( line = 1; line <= 10; line++ )
        {
            for( star = 1; star <= line; star++ )
            {
                System.out.print( "*" );
            }
            System.out.println();
        }
    }
} 

2 个答案:

答案 0 :(得分:2)

你需要使用嵌套在另一个for循环中的for循环。语法类似于:

for(int i = 0; i < n; ++i)
    for(int j = 0; j < i; ++j)
       ...

根据您想要绘制的三角形,您需要使用由...替换的表达式以及第二个for循环的初始化和条件。

例如,在(c)中,在第一行(i = 0)上,您希望j从0开始并增加到9(即您打印的星数 - 1)。然后下一行(i = 1),你希望j从0开始并增加到8.你应该注意到一个模式。

答案 1 :(得分:1)

这里有很多人可以在5分钟内为您解答答案。但我认为这不会对你有所帮助。

所以这里有一个提示,关于&gt;&gt;你&lt;&lt;可以自己解决这个问题。

  • 获取所需输出中的每一行,并计算有多少个星星和空格。例如,第一行包括“1颗星,1颗空间,9颗恒星,1颗空间,9颗恒星,1颗空间和1颗恒星”。

  • 在连续的行中查找模式。

  • 根据您推断出的模式和问题陈述中的说明,弄清楚如何输出第i行。

  • 弄清楚如何输出所有行。

此练习完全是关于for循环。