打印各种形状三角形(Triangle Printing Program)

来源:互联网 发布:java和jsp的区别 编辑:程序博客网 时间:2024/05/29 13:50

现在发现,打印各种图形还真是要动脑筋的:

1. 发现图形的规律

2. 确定循环语句的控制变量的初始值、增量和循环条件

调试成功的一瞬间,感觉还是挺有成就感的。


另外发现,在本例中,使用嵌套for循环只需4行代码,而使用while循环实现同样的功能竟然用了11行代码。

看来,Java语言的while, do...while, for都各有所长啊,“一个都不能少”大笑


代码如下:

//JHTP Exercise 5.15: Triangle Printing Program//by pandenghuang@163.com/*(Triangle Printing Program) Write an application that displays the following patterns separately,one below the other. Use for loops to generate the patterns. All asterisks (*) should be printedby a single statement of the form System.out.print('*'); which causes the asterisks to print sideby side. A statement of the form System.out.println(); can be used to move to the next line. Astatement of the form System.out.print(' '); can be used to display a space for the last two patterns.There should be no other output statements in the program. [Hint: The last two patterns requirethat each line begin with an appropriate number of blank spaces.]*/import java.util.Scanner;public class Test{public static void main(String[] args){Scanner input=new Scanner(System.in);System.out.print("请输入三角形的大小(整数):");int size=input.nextInt();int outterCounter=0;int innerCounter=0;//small to large(while statement)System.out.println("使用while循环语句打印左对齐三角形:");while(outterCounter<size){while (innerCounter<=outterCounter){System.out.print("*");innerCounter++;}System.out.println();outterCounter++;innerCounter=0;}//small to large(for statement)System.out.println("\n使用for循环语句打印左对齐三角形:");for (int i=0;i<size;i++){for (int j=0;j<=i;j++)System.out.print("*");System.out.println();}//large to smallSystem.out.println("\n左对齐倒三角形:");for (int i=size;i>=0;i--){for (int j=0;j<=i;j++)System.out.print("*");System.out.println();}//small to large (right aligned)System.out.println("\n右对齐到三角形:");for (int i=0;i<size;i++){for (int j=0;j<size;j++){if (j<i)System.out.print(" ");elseSystem.out.print("*");}System.out.println();}//large to small (right aligned)System.out.println("\n右对齐三角形:");for (int i=0;i<size;i++){for (int j=0;j<size;j++){if (j<size-i-1)System.out.print(" ");elseSystem.out.print("*");}System.out.println();}}}


运行结果:(注意:从Eclipse复制粘贴运行结果时,发生了错位,程序是对的)

请输入三角形的大小(整数):18
使用while循环语句打印左对齐三角形:
*
**
***
****
*****
******
*******
********
*********
**********
***********
************
*************
**************
***************
****************
*****************
******************

使用for循环语句打印左对齐三角形:
*
**
***
****
*****
******
*******
********
*********
**********
***********
************
*************
**************
***************
****************
*****************
******************

左对齐倒三角形:
*******************
******************
*****************
****************
***************
**************
*************
************
***********
**********
*********
********
*******
******
*****
****
***
**
*

右对齐到三角形:
******************
 *****************
  ****************
   ***************
    **************
     *************
      ************
       ***********
        **********
         *********
          ********
           *******
            ******
             *****
              ****
               ***
                **
                 *

右对齐三角形:
                 *
                **
               ***
              ****
             *****
            ******
           *******
          ********
         *********
        **********
       ***********
      ************
     *************
    **************
   ***************
  ****************
 *****************
******************



0 0