JAVA 好玩程序之星星图案
原理:利用循环语句进行打印,输出不同的星星图案
一、打印一个矩形
图案:*************************
分析:打一行*,然后循环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循环代表的是星星的个数。
三、打印整个金字塔
图案:**** ************
*********
分析:由空格和星星两部分组成
- 行数:5
- 空格数:4→3→2→1 (5- i ; i++)
- 星星数: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判断语句即可。
- 确定行数,5行;
- 左边的空格也是从 4→3→2→1 (代码保留)
for (int j = 1; j <= 5 - i; j++) {System.out.print(" ");}
// 这是空格的代码
- 第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(" ");}
}
- 最后一行全是星星,所以可以在“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,就能实现不同的效果
图案:** * * ** ** *
***********
六、总结
- 可以在“五”的基础上去,加Scanner,键盘控制输出图案,十分有趣。
- 尝试把矩形给镂空,步骤跟“四”一样。
- 构思图案时,可以用笔在纸上画出来,一步一步去推算,然后把想法给到代码。
七、练手图形
图案:* ** * * ** * ** ** **
// 代码实现
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 好玩程序之星星图案相关推荐
- 分别用Java应用程序和Applet程序实现星星三角形图案的绘制
一,用Java应用程序和Applet程序实现星星三角形图案的绘制 1,新建java project , project name 为 Triangle 2,新建new class , class na ...
- CC00070.bigdatajava——|Java循环结构.V09|——|Java.v09|双重for循环.v02|打印各种星星图案|
一.双重for循环打印各种星星图案 ### --- 案例题目~~~ --> 使用双重for循环分别打印以下图案 二.编程代码 ### --- 编程代码/*编程使用双重for循环打印星星图案*/ ...
- java星星图案总结
import java.util.Scanner; public class 图案修改版 {public static void main(String[] args) {Scanner sc = n ...
- 新电子书:解决生产中Java应用程序错误的完整指南
构建明智的错误处理工作流程需要什么? 生产异常处理是一门黑暗的科学. 一旦您的代码投入生产,任何小的缺陷或故障都可以转化为数百万个日志事件. 尤其是在将异常作为控制流的一部分使用的情况下. 它是研究最 ...
- java金字塔程序_Java中的金字塔模式程序
java金字塔程序 Pattern programs are used a lot in interviews to understand the logical thinking abilities ...
- Java语言程序设计基础篇(第十版)课后习题答案 - 第一章
第一章:计算机.程序和Java概述 复习题 1.1 什么是硬件和软件? 答:硬件指计算机中可见的物理部分:软件是计算机中看不见的指令,这些指令控制硬件并使硬件完成特定的任务. 1.2 列举计算机的5个 ...
- Linux操作系统下,在终端打印出闪烁的星星图案
Linux系统下,在终端打印出闪烁的星星图案. 一.首先需要耐心,使用输出语句先"弄"出一个星星图案 (我是为了打印出来的星星是在终端中间,所以这样子敲的,可根据自己想法完成) 二 ...
- java实现比心_如何在java中制作比心图案?
在今天这样节日氛围中,大家在享受春节假期的同时,还可以过一下情节人.抛弃我们之前对学习代码枯燥无味的印象,今天我们学习一下用Java代码绘制心形的图案.看完这里,很多人都想要学习啦,毕竟成果是很好看的 ...
- java程序ssh置顶_使用shell脚本启动远程(SSH)Java应用程序不会返回本地提示
我见过类似的问题,所有已解决的问题已经解决/不适用. 我在启动Java应用程序的远程计算机中有一个bash脚本.相关的行将是: #!/usr/bin/env bash ... java -cp /fu ...
最新文章
- 数学 希腊字母 Greek Alphabet
- ASP.NET Web API的Controller是如何被创建的?
- alexa api php,php 读取 alexa信息
- DaNet: Decompose-and-aggregate Network for 3D Human Shape and Pose Estimation
- noi.ac #289. 电梯(单调队列)
- JAVA 列表输入学生的信息
- php 5.5 缓存,PHP 5.5 FastCGI缓存
- 怎么定义int_「C语言更新」C语言中如何来定义一个指针,并且对其进行初始化...
- 五大算法思想(二)贪心算法及常见例子
- 把安卓手机屏幕投射到电脑上
- 微信文件过大不能上传?学会这几种方法,再大文件也能轻松发
- 段子用计算机等于250,段子手要失业了,计算机也懂幽默
- 最小生成树 Kruskal 和 Prim算法及堆优化
- 游戏设计分析——魔塔
- vue改变class内的属性_vue 绑定 添加class 属性 4种方法 添加style 3中方法 v-bind /:...
- 中国人民大学张静:知识图谱融合中歧义性与异质性问题的讨论
- 【pwn】WMCTF2020 cfgo-CheckIn
- 局部异常因子算法-Local Outlier Factor(LOF)
- MOS管开关时的米勒效应
- 正大国际期货:焦煤焦炭期货部分合约交易保证金水平将调整
热门文章
- 【操作系统】页式储存方式,页,页表,页表项
- Google首席架构师谈Java的命运
- 如何使用EPLAN PRO PANEL 制作部件-带3D接线部分
- 磷脂聚乙二醇葡萄糖 DSPE-PEG-Glucose简介;脂质体表面进行聚乙二醇修饰;DSPE-PEG-葡萄糖
- 计算机等级考试准考证号规则,计算机等级考试(NCRE)准考证是根据什么规则编号的呢?...
- 给大家推个社群管理软件?
- 萤石云C#方案,调用官方DLL SDK实现全部功能
- 如何操作拆分Word文档?干货来啦!怎样上下拆分Word文档?
- 华为mate 30 安装时提示安装包解析失败
- 给力名字作诗,让我们的生活更加诗意盎然