Java用“*”输出三角形、六边形、空心菱形、“拱门”

目录

一 用“*”输出三角形

二 用“*”输出六边形

三 用“*”输出空心菱形

四 用“*”输出“拱门”


一 用“*”输出三角形

public class Test {
    public static void main(String[] args) {
        java.util.Scanner w = new java.util.Scanner(System.in);
        System.out.print("请输入一个正整数:");
        int line = w.nextInt();
//        用最外层for循环控制行数
        for (int x = 1; x <= line; x++) {
//            控制三角形旁边的空格数量
            for (int i = 1; i <= line - x; i++) {
                System.out.print(" ");
                System.out.print(" ");
            }
//            将三角形分为左右两个部分,首先输出左边,
//            由第一行往下依次输出甲乙
            for (int j = 1; j <= x; j++) {
                System.out.print("*");
                System.out.print(" ");
            }
//            输出右边三角形,k<=x-1控制第一行不输出,
//            以后每行比左边输出少一个
            for (int k = 1; k <= x - 1; k++) {
                System.out.print("*");
                System.out.print(" ");
            }
//            每行输出完成,进行换行
            System.out.println("");
        }
    }
}

 二 用“*”输出六边形

public class Test  {
    public static void main(String[] args) {
        int line = 8;
//        输出六边形可以将其分为上梯形和下梯形
//        用最外层for循环控制行数,这里由于输出六边形,
//        所以x初始值从3开始
        for (int x = 3; x <= line; x++) {
//          控制梯形旁边的空格数量
            for (int i = 1; i <= line - x; i++) {
                System.out.print(" ");
            }
//            和三角形相同输出左右星星
            for (int j = 1; j <= x; j++) {
                System.out.print("*");
            }
            for (int k = 1; k <= x; k++) {
                System.out.print("*");
            }
//            每行输出完成换行
            System.out.println("");
        }
//        控制行数,增大最小值,使得呈现梯形
        for (int x = line; x >= 3; x--) {
            for (int i = line-x; i >= 1; i--) {
                System.out.print(" ");
            }
//            需要倒立输出,所以星星数由大到小
            for (int j = x; j >= 1; j--) {
                System.out.print("*");
            }
            for (int k = x; k >= 1; k--) {
                System.out.print("*");
            }
            System.out.println("");
        }

    }
}

三 用“*”输出空心菱形

public class Test {
    public static void main(String[] args) {
        int line = 9;
//        空心菱形依旧分为上下部分
//        控制上半部分行数
        for (int x = 1; x <= line; x++) {
//            控制菱形左侧空格数量
            for (int i = 1; i <= line - x; i++) {
                System.out.print(" ");
            }
//            上半部分也可以分为左右两边,
//            由于是空心菱形,所以左边每行只需要输出一个星星,其余输出空格
            for (int j = 1; j <= x-1; j++) {
                if (j==1){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
//            右侧部分则是全部输出空格,再换行时输出一个星星即可
            for (int k = 1; k <= x-1; k++) {
                System.out.print(" ");
            }
            System.out.println("*");
        }
//        菱形下半部分与上面同理
        for (int x = line-1; x >= 1;x--){
            for (int i = line-x-1; i >= 0; i--) {
                System.out.print(" ");
            }
            for (int a = x; a > 1;a--) {
                if (a == x){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }
            }
            for(int b = x-1; b >= 1;b--){
                System.out.print(" ");
            }
            System.out.println("*");
        }
    }
}

 

 四 用“*”输出“拱门”

public class Test {
    public static void main(String[] args) {
//        此方法是将其分为左右两部分进行输入
//        控制总的行数
        for (int x = 1; x <= 8; x++) {
//            左侧直接进行星星依次逐行输出
            for (int i = 1; i <= 8 - x; i++) {
                System.out.print("*");
            }
            for (int j = 1; j <= x-1; j++) {
//            用于输出中间连接出的一个星星
                if(j == 1){
                    System.out.print("*");
                }
//                输出用于间隔开右边三角形
                System.out.print(" ");
            }
//            输出空格,用于间隔右边三角形
            for (int k = 1; k <= x-2 ; k++) {
                System.out.print(" ");
            }
//            右侧星星输出
            for(int m = 0;m <= 8-x ; m++){
                System.out.print("*");
            }
            System.out.println("");
        }

    }
}

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值