java利用for循环打印三角形

xiaoxiao2021-02-28  41

自己的基础一直很薄弱。今天看了韩顺平老师的讲座视频补充了很多。

把用for循环打印左半边三角形、右半边三角形、实心、空心三角形做了一个整理。

和视频中的代码略微有些区别,我是以i=0开始定义数组。所以逻辑表达式也有不同的地方。

不过令i=1更容易理解,逻辑也比较容易推理。但其实数组的下标都是从零开始的。

public class demo { public static void main(String[]args) { int lay=4; halfRight(lay); System.out.println(); halfLeft(lay); System.out.println(); doublePrint(lay); System.out.println(); emptyPrint(lay); } public static void halfRight(int lay) { for(int i=0;i<lay;i++) { for(int j=0;j<=i;j++){ System.out.print("*"); } System.out.println(); } } public static void halfLeft(int lay) { for(int i=0;i<lay;i++) { for(int k=0;k<lay-1-i;k++) { System.out.print(" "); } for(int j=0;j<=i;j++){ System.out.print("*"); } System.out.println(); } } public static void doublePrint(int lay) { for(int i=0;i<lay;i++) { for(int k=0;k<lay-1-i;k++) { System.out.print(" "); } for(int j=0;j<2*i+1;j++) { System.out.print("*"); } System.out.println(); } } public static void emptyPrint(int lay) { for(int i=1;i<=lay;i++) { for(int k=1;k<=lay-i;k++) { System.out.print(" "); } //考虑星号时,先忽略空格打法,目标如下: // * // * * // * * // ******* for(int j=1;j<=(2*i-1);j++) { if(i==1 || i==lay) System.out.print("*"); //第一行和最后一行打满 else { if(j==1||j==2*i-1) { System.out.print("*"); //第一列或者最后一列再打星号 } else { System.out.print(" "); //其他列都打空格 } } } System.out.println(); } } } 运行结果:

转载请注明原文地址: https://www.6miu.com/read-2250356.html

最新回复(0)