比如要在控制台打印输出一个:

*  
 *** 
*****
 *** 
  *

我们应该怎么去做呢?首先,这个涉及到行和列,所以,这个肯定是用两个for的嵌套来打印输出。然后,我们要找出这个的规律,因为“磨刀不误砍柴工”,所以找出规律所在,我们才知道应该怎么去下手。比如:我们应该把这个分成上下两个部分,上面部分是:

*****        第一行:三个部分;2个空格  1个*号  2个空格          (i=1)
*****        第二行:三个部分;1个空格  3个*号 1个空格              (i=2)
*****        第三行:三个部分;0个空格  5个*号 0个空格               ( i=3)

为了更加方便去找规律,我们把这个图形补充完整,黑色部分代表着空格,也就是没有显示的部分,而红色部分就是我们的图形的上半部分。所以我们可以得出的规律是:*号的数量和i的关系为:2*i-1  而,空格因为左右一样,所以空格为:3-i。所以上半部分的代码可以这样写:

for(int i =1 ;i<=3;i++){
for(int j=1;j<=3-i;j++){
System.out.print(" ");//打印左边的空格
}
for(int j=1;j<=2*i-1;j++){
System.out.print("*"); //打印*号
}
for(int j=1;j<=3-i;j++){
System.out.print(" ");//打印右边空格(也可以省略)
}
System.out.println();//这是每一行打印完就换行
 }

那同样的,我们也要在下半部分找出规律来:

*****    第一行:三个部分;1个空格  3个*号  1个空格          (i=1)

*****    第一行:三个部分;2个空格  1个*号  2个空格          (i=2)

所以我们可以得出的规律是:*号的数量和i的关系为:5-2*i  而,空格因为左右一样,所以空格为:i。所以下半部分的代码可以这样写:

for(int i=1;i<=2;i++){
for(int j=1;j<=i;j++){
System.out.print(" ");   
}
for(int j=1;j<=5-2*i;j++){
System.out.print("*");
}
for(int j=1;j<=i;j++){
System.out.print(" ");
}
System.out.println();
}

同样的任何只要是这样的菱形,我们都可以通过这个规律去打印,只需要把上面的数字替换掉,替换成需要打印的数字就可以了,然后规律大家也可以自己去找。只要很认真熟练地打印出这个例子,那么for的嵌套使用就可以比较熟练了。

怎么用java去打印输出一个菱形。相关推荐

  1. Java实现打印输出菱形

    Java实现打印输出菱形 思路 把菱形分成两部分输出,然后拼接 Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数 ...

  2. Java基础【之】输出一个菱形(详解)

    Java基础[之]输出一个菱形(详解) 代码示例 <目录:Java渐进式学习> <目录:Java设计模式> <目录:从零手写Tomcat> 代码示例 public ...

  3. java语言打印1到10的偶数_#Java编程# 编写一个应用程序创建两个线程,一个线程打印输出1~100之间所有的奇数,另外一 求写一个用JAVA求1~...

    import java.util.Random; class A extends Thread { \tint i=1; \tRandom r=new Random(); \tpublic void ...

  4. java一个参数 多个值_Spring里有类似@RequestParam的办法去绑定一个多值参数吧

    [ 在 kabbesy (三冠王) 的大作中提到: ] : 标  题: Re: Spring里有类似@RequestParam的办法去绑定一个多值参数吧 : 发信站: 水木社区 (Wed Aug 18 ...

  5. java lt t gt 是什么意思_关于泛型:Java 7中的菱形运算符(&lt;&gt;)有什么意义?...

    Java 7中的菱形操作符允许如下代码: List list = new LinkedList<>(); 然而,在Java 5/6中,我可以简单地写: List list = new Li ...

  6. 如何去判断一个面试者的深度学习水平?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 编辑:Amusi  |  来源:知乎 https://www.zhi ...

  7. 转Java转iOS-第一个项目总结(2):遇到问题和解决方案

    目录 1.UITableView滑动卡顿的优化 2.右滑手势返回 3.添加页面统计 4.debug版和release版 5.关于页面刷新 6.关于页面布局 7.推荐博客 遇到问题和解决方案 本文是Ja ...

  8. Java转iOS-第一个项目总结(2)

    2019独角兽企业重金招聘Python工程师标准>>> ##遇到问题和解决方案     本文是Java转iOS-第一个项目总结(1)的内容补充,分析遇到的一些问题和解决方案,分享一些 ...

  9. 利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

最新文章

  1. 为了智能驾驶,李彦宏要改造城市道路
  2. 图灵奖得主LeCun:不需要监督的AI才是未来!
  3. 命令模式的优点?_一篇目录复习完设计模式
  4. Code128 Fontware条码控件介绍
  5. 两个iphone怎么大量传照片_iphone12(或iphone12 pro)如何正确的转移手机数据?apple ID不通过,或者正在传输中持续无进度怎么办?...
  6. pycharm关闭git
  7. 【Flink】Too many fields referenced from an atomic type
  8. 学习英语,先记下留着后用
  9. 步进与伺服电机区别与选型
  10. vcpkg安装和使用--学习入门
  11. 小米怎么和计算机连接网络连接网络,小米电视如何与电脑连接
  12. QQ三国推举孝廉答题工具使用说明
  13. Android中使用自定义的VideoController和MediaPlayer实现视频的窗口和全屏播放
  14. 贪心算法(Greedy)
  15. 使用微信+树莓派+Arduino+服务器构建你的看门狗
  16. 电脑游戏业编年史之一游戏的诞生
  17. 什么是方差分析(ANOVA)?方差分析(ANOVA)有哪些类型?
  18. t-io 3.7.5 发布,口碑炸裂的国产网络编程框架
  19. 市场经济下的“按劳分配”
  20. 科研工具-Citespace和vosviewer文献计量及其可视化

热门文章

  1. 安卓毕业设计app项目基于Uniapp+SSM实现的移动端的酒店餐饮住宿订餐点餐管理系统
  2. nn.AvgPool2d——二维平均池化操作
  3. tos cos dscp 区别和作用
  4. mysql 时间 截取 查询_mysql截取日期年月日部分查询某天用户列表信息
  5. 一、JAVA发送简单邮件(QQ邮箱为例)
  6. 通过mac电脑的下载服务器的日志与日志筛选
  7. vue项目的导入idea以及环境搭建中提示错误的处理方法
  8. 设置centos系统语言设置为中文
  9. 构建复杂游戏的又一神器
  10. html中隐藏域hidden的作用