今天看到了毕老师视频for嵌套的地方了,除了毕老师讲的两种*形三角之外,又拓展了另外四种三角形的打印小程序。毕老师的视频中打印了:
* *****
** ****
*** ***
**** **
***** 和 * 这两种三角。
第一个拓展是打印:
***** *
**** **
*** ***
** ****
* 和 ***** 这两种三角:
代码如下:
- package test;
- /**
- * 打印如下图形:
- *
- * *****
- * ****
- * ***
- * **
- * *
- * @author jeremy
- *
- * 每一行打印*前,先打印x个空格,即可完成上述图形。
- */
- public class Triangle3 {
- public static void main(String[] args) {
- for(int x = 0; x < 5; x ++) {
-
- for(int y = x; y < 5; y ++) {
-
- System.out.print("*");
-
- }
-
- System.out.println();
-
- /*
- * 这个for循环,在每次换行之后,打印x个数量的空格
- */
- for(int j = 0; j <= x; j ++) {
-
- System.out.print(" ");
-
- }
- }
- }
- }
复制代码- package test;
- /**
- * 打印如下图形:
- * *
- * **
- * ***
- * ****
- * *****
- * @author jeremy
- *
- * 只需要在Triangle2的基础上,每行先打印x个空格即可打印上述图形。
- */
- public class Triangle4 {
-
- public static void main(String[] args) {
-
- for(int x = 0; x < 5; x ++) {
-
- /*
- * 这个循环在每行打印*前,先打印x个空格
- */
- for(int j = 4; j > x; j --) {
- System.out.print(" ");
- }
-
- for(int y = 0; y <= x; y ++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码 第二个拓展,是打印如下三角和其倒三角:
*
***
*****
*******
代码如下:
- package test;
- /**
- * 打印如下图形:
- *
- * *******
- * *****
- * ***
- * *
- *
- * @author jeremy
- *
- * 1)根据Triangle3,先将每行前的空格打印出来,第一步结果如下:
- * *******
- * *******
- * *******
- * *******
- *
- * 2)第二步工作只需要控制每一行的*数量即可,即找出init(初始行*的个数)和x(行数)之间的关系:
- * 每一行*的数量 = init - 2x
- * 即x每增加1,每一行的*数量减少2个
- *
- * 3)在内循环控制判断条件,即可打印上述图形
- */
- public class Triangle5 {
- public static void main(String[] args) {
-
- int init = 17;
-
- //打印上述图形,初始行*的个数与整个图形行数的关系是 第一行*个数 / 2 + 1,例如第一行*个数(init) = 7的时候,有4行,以此类推
- for(int x = 0; x < (init / 2 + 1); x ++) {
-
- //每一行*的数量 = init - 2x
- for(int y = 0; y < (init - 2 * x); y ++) {
- System.out.print("*");
- }
-
- System.out.println();
-
- //这个循环在换行后先打印x个空格
- for(int j = 0; j <= x; j ++) {
- System.out.print(" ");
- }
-
- }
- }
- }
复制代码- package test;
- /**
- * 打印如下图形:
- *
- * *
- * ***
- * *****
- * *******
- * @author jeremy
- *
- * 思路同Triangle5,只是打印空格的循环先于换行语句执行,以及需要根据整个三角的行数确定每行打印空格的个数。
- */
- public class Triangle6 {
-
- public static void main(String[] args) {
-
- int base = 15;
-
- //打印上述图形,初始行*的个数与整个图形行数的关系是 (最后一行*个数 / 2 + 1),例如最后一行*个数(base) = 7的时候,有4行,以此类推
- for(int x = 0; x < (base / 2 + 1); x ++) {
-
- //每行空格的个数 = 最后一行*个数 / 2
- for(int j = (base / 2); j > x; j --) {
- System.out.print(" ");
- }
-
- //第(x + 1)行*的个数 = 最后一行*的个数(base) - 2 * (整个三角形的行数 - (x + 1)),这里貌似很麻烦,但是我想不到更好的方法了,希望大家指点
- for(int y = 0; y < (base - 2 * ((base / 2 + 1) - (x + 1))); y ++) {
- System.out.print("*");
- }
-
- System.out.println();
- }
- }
- }
复制代码 希望对大家有所帮助~一起努力!
|