原理:利用循环语句进行打印,输出不同的星星图案

一、打印一个矩形


图案:*************************

分析:打一行*,然后循环5次即可

// 代码实现:
for (int i = 1; i <= 5; i++) {System.out.println("*****");
}
// 由此可以打印出一个 5 * 5 的矩形

二、打印半个金字塔

图案:
*
**
***
****
*****

分析:第一行输出1个,第n行输出n个。

// 代码实现:
for (int i = 0; i < 5; i++) {for (int j = 0; j <= i; j++) {System.out.print("*");}System.out.println();
}
// 最外面的for循环代表的行,内for循环代表的是星星的个数。

三、打印整个金字塔

图案:**** ************
*********

分析:由空格和星星两部分组成

  1. 行数:5
  2. 空格数:4→3→2→1 (5- i ; i++)
  3. 星星数:1→3→5→7→9 (2*i-1 ; i++)
// 代码实现:
// 最外层的for循环代表的是行
for (int i = 1; i <= 5; i++) {// 内第一个for循环 打印的是空格for (int j = 1; j <= 5 - i; j++) {System.out.print(" ");}// 内第二个for循环 打印的是星星  for (int j = 1; j <= 2*i-1; j++) {System.out.print("*");}// 每打印完一层就进行换行   System.out.println();
}
// 流程:
// 第一行:先打印4个空格,1个 *,换行
// 第二行;打印3个空格,3个 *,换行
// ...

四、打印空心金字塔

图案:** * *   **     *
*********

分析:在“三”的基础上,再加个if判断语句即可。

  1. 确定行数,5行;
  2. 左边的空格也是从 4→3→2→1 (代码保留)
for (int j = 1; j <= 5 - i; j++) {System.out.print(" ");}
// 这是空格的代码
  1. 第1~4行的星星数都是由第一个和最后一个组成
for (int j = 1; j <= 2*i-1; j++) {System.out.print("*");
}
// 在这个基础上进行if判断,如果 j是第一个,或者j是最后一个,输出星星,否则输出空格
for (int j = 1; j <= 2*i-1; j++) {if (j == 1 || j == 2*i-1){System.out.print("*");}else {System.out.print(" ");}
}
  1. 最后一行全是星星,所以可以在“3”的基础上再加个判断,当行数是最后一行时,输出星星
for (int j = 1; j <= 2*i-1; j++) {if (j == 1 || j == 2*i-1 || i == 5){System.out.print("*");}else {System.out.print(" ");}
}
// i == 5 即最后一行

接下里是完整代码的实现:

for (int i = 1; i <= 5; i++) {for (int j = 1; j <= 5-i; j++) {System.out.print(" ");}// 打印的是空格for (int j = 1; j <= 2*i-1; j++) {// 因为只有第一个和最后一个是星星 所以中间用空格代替if (j == 1 || j == 2*i-1 || i==5){System.out.print("*");}else {System.out.print(" ");}}// 打印的是星星System.out.println();// 每打印完一层就进行换行
}

五、把行数变量化,输出x行的空心金字塔

分析:在“四”的基础上,把行数用一个变量名替换,即可实现想要的效果~

// 实现一个6行的空心三角形
int line_number = 6;
// 定义一个变量,然后把数字换成变量
for (int i = 1; i <= line_number; i++) {for (int j = 1; j <= line_number-i; j++) {System.out.print(" ");}// 打印的是空格for (int j = 1; j <= 2*i-1; j++) {// 因为只有第一个和最后一个是星星 所以中间用空格代替if (j == 1 || j == 2*i-1 || i==line_number){System.out.print("*");}else {System.out.print(" ");}}System.out.println();
}
// 所以只要改变line_number,就能实现不同的效果
图案:** * *   **     **       *
***********

六、总结

  1. 可以在“五”的基础上去,加Scanner,键盘控制输出图案,十分有趣。
  2. 尝试把矩形给镂空,步骤跟“四”一样。
  3. 构思图案时,可以用笔在纸上画出来,一步一步去推算,然后把想法给到代码。

七、练手图形

图案:*       **   *   *   **     *     **       **   **
// 代码实现
for (int i = 1; i <= 3 ; i++) {for (int j = 1; j <= i ; j++) {if (j == 1 && i == 2 ){System.out.print(" *");  // 一个空格}else if (j == 1 && i == 3 ){System.out.print(" *"); // 一个空格}else{System.out.print("  ");// 二个空格}// 判断是不是第二,三行的第一个,如果是输出星星}for (int j = 5; j >= 2*i-1 ; j--) {if (j == 5 || j == 2*i-1){System.out.print(" *");// 一个空格} else{System.out.print("  ");// 二个空格}if (j == 3 && i == 2){System.out.print("   *");// 三个空格}// 第二行的第七个if (j == 5 && i == 3){System.out.print("     *");// 五个空格}}System.out.println();
}
//        System.out.println("----------------------");
for (int i = 1; i <= 3 ; i++) {for (int j = 1; j <= i ; j++) {System.out.print("  ");// 二个空格}for (int j = 5; j >= 2*i-1 ; j--) {if (j == 5 || j == 2*i-1){System.out.print(" *");// 一个空格}else{System.out.print("  ");// 一个空格}}System.out.println();
}

思路:我是三行,三行的做。

JAVA 好玩程序之星星图案相关推荐

  1. 分别用Java应用程序和Applet程序实现星星三角形图案的绘制

    一,用Java应用程序和Applet程序实现星星三角形图案的绘制 1,新建java project , project name 为 Triangle 2,新建new class , class na ...

  2. CC00070.bigdatajava——|Java循环结构.V09|——|Java.v09|双重for循环.v02|打印各种星星图案|

    一.双重for循环打印各种星星图案 ### --- 案例题目~~~ --> 使用双重for循环分别打印以下图案 二.编程代码 ### --- 编程代码/*编程使用双重for循环打印星星图案*/ ...

  3. java星星图案总结

    import java.util.Scanner; public class 图案修改版 {public static void main(String[] args) {Scanner sc = n ...

  4. 新电子书:解决生产中Java应用程序错误的完整指南

    构建明智的错误处理工作流程需要什么? 生产异常处理是一门黑暗的科学. 一旦您的代码投入生产,任何小的缺陷或故障都可以转化为数百万个日志事件. 尤其是在将异常作为控制流的一部分使用的情况下. 它是研究最 ...

  5. java金字塔程序_Java中的金字塔模式程序

    java金字塔程序 Pattern programs are used a lot in interviews to understand the logical thinking abilities ...

  6. Java语言程序设计基础篇(第十版)课后习题答案 - 第一章

    第一章:计算机.程序和Java概述 复习题 1.1 什么是硬件和软件? 答:硬件指计算机中可见的物理部分:软件是计算机中看不见的指令,这些指令控制硬件并使硬件完成特定的任务. 1.2 列举计算机的5个 ...

  7. Linux操作系统下,在终端打印出闪烁的星星图案

    Linux系统下,在终端打印出闪烁的星星图案. 一.首先需要耐心,使用输出语句先"弄"出一个星星图案 (我是为了打印出来的星星是在终端中间,所以这样子敲的,可根据自己想法完成) 二 ...

  8. java实现比心_如何在java中制作比心图案?

    在今天这样节日氛围中,大家在享受春节假期的同时,还可以过一下情节人.抛弃我们之前对学习代码枯燥无味的印象,今天我们学习一下用Java代码绘制心形的图案.看完这里,很多人都想要学习啦,毕竟成果是很好看的 ...

  9. java程序ssh置顶_使用shell脚本启动远程(SSH)Java应用程序不会返回本地提示

    我见过类似的问题,所有已解决的问题已经解决/不适用. 我在启动Java应用程序的远程计算机中有一个bash脚本.相关的行将是: #!/usr/bin/env bash ... java -cp /fu ...

最新文章

  1. 数学 希腊字母 Greek Alphabet
  2. ASP.NET Web API的Controller是如何被创建的?
  3. alexa api php,php 读取 alexa信息
  4. DaNet: Decompose-and-aggregate Network for 3D Human Shape and Pose Estimation
  5. noi.ac #289. 电梯(单调队列)
  6. JAVA 列表输入学生的信息
  7. php 5.5 缓存,PHP 5.5 FastCGI缓存
  8. 怎么定义int_「C语言更新」C语言中如何来定义一个指针,并且对其进行初始化...
  9. 五大算法思想(二)贪心算法及常见例子
  10. 把安卓手机屏幕投射到电脑上
  11. 微信文件过大不能上传?学会这几种方法,再大文件也能轻松发
  12. 段子用计算机等于250,段子手要失业了,计算机也懂幽默
  13. 最小生成树 Kruskal 和 Prim算法及堆优化
  14. 游戏设计分析——魔塔
  15. vue改变class内的属性_vue 绑定 添加class 属性 4种方法 添加style 3中方法 v-bind /:...
  16. 中国人民大学张静:知识图谱融合中歧义性与异质性问题的讨论
  17. 【pwn】WMCTF2020 cfgo-CheckIn
  18. 局部异常因子算法-Local Outlier Factor(LOF)
  19. MOS管开关时的米勒效应
  20. 正大国际期货:焦煤焦炭期货部分合约交易保证金水平将调整

热门文章

  1. 【操作系统】页式储存方式,页,页表,页表项
  2. Google首席架构师谈Java的命运
  3. 如何使用EPLAN PRO PANEL 制作部件-带3D接线部分
  4. 磷脂聚乙二醇葡萄糖 DSPE-PEG-Glucose简介;脂质体表面进行聚乙二醇修饰;DSPE-PEG-葡萄糖
  5. 计算机等级考试准考证号规则,计算机等级考试(NCRE)准考证是根据什么规则编号的呢?...
  6. 给大家推个社群管理软件?
  7. 萤石云C#方案,调用官方DLL SDK实现全部功能
  8. 如何操作拆分Word文档?干货来啦!怎样上下拆分Word文档?
  9. 华为mate 30 安装时提示安装包解析失败
  10. 给力名字作诗,让我们的生活更加诗意盎然