Java典型例题(打印菱形)

题目:利用*号打印出一个菱形图样

分析:下面逐步分析菱形打印的推演过程

推演过程利用单独的方法演示,使用时直接在主方法中调用对应的方法即可。

第一步,打印一行*号

/**
打印出如下图形:*******
*/
public static void print01() {//每次打印一个星星for(int i = 1;i<=7;i++) {System.out.print("*");}System.out.println();
}

第二步,打印出一个矩形

/**
打印出矩形: ****************************
*/
public static void print02() {System.out.println("循环每次打印一个星星");for(int i = 1;i<=4;i++) {//行数for(int j = 1;j<=7;j++) {//星星个数System.out.print("*");}System.out.println();}
}

第三步,打印出一个三角型

/**
打印出如下图形  ****************
规律如下:
行数   *号个数1     12     33     54     7n     2*n-1
*/
public static void print03() {for(int i = 1;i<=4;i++) {//控制行数for(int j = 1;j<=2*i-1;j++) {//控制星星个数的时候和行有关System.out.print("*");}System.out.println();}
}

第四步,打印出一个正三角型

/**
打印如下图型:****************规律如下:行数  1 2 3 4 n空格  3 2 1 0 总行数-n星星  1 3 5 7 2*n-1
*/
public static void print04() {for(int i = 1;i<=4;i++) {//控制行数for(int k = 1;k<=4-i;k++) {//空格的个数System.out.print(" ");}for(int j = 1;j<=2*i-1;j++) {//控制星星个数的时候和行有关System.out.print("*");}System.out.println();}
}

第五步,打印出一个菱形

/***   *  *     **    ****   ******  ********  行数  1 2 3 4 n*  空格  3 2 1 0 总行数-n*  星星  1 3 5 7 2*n-1*  *  *  ******   ****    **  行数  3 2 1   n*  空格  1 2 3       总行数-n*  星星  5 3 1   2*n-1*  *  *  *  */
public static void print05() {for(int i = 1;i<=4;i++) {//控制行数for(int k = 1;k<=4-i;k++) {//空格的个数System.out.print(" ");}for(int j = 1;j<=2*i-1;j++) {//控制星星个数的时候和行有关System.out.print("*");}System.out.println();}for(int i = 3;i>=1;i--) {//控制行数for(int k = 1;k<=4-i;k++) {//空格的个数System.out.print(" ");}for(int j = 1;j<=2*i-1;j++) {//控制星星个数的时候和行有关System.out.print("*");}System.out.println();}
}

打印结果如图所示:

思考:如何打印出一个中间部分是一个空心的菱形

public static void print06() {for(int i = 1;i<=4;i++) {//控制行数for(int k = 1;k<=4-i;k++) {//空格的个数System.out.print(" ");}for(int j = 1;j<=2*i-1;j++) {//控制星星个数的时候和行有关if(j==1||j==2*i-1) {System.out.print("*");}else {System.out.print(" ");}}System.out.println();}for(int i = 3;i>=1;i--) {//控制行数for(int k = 1;k<=4-i;k++) {//空格的个数System.out.print(" ");}for(int j = 1;j<=2*i-1;j++) {//控制星星个数的时候和行有关if(j==1||j==2*i-1) {System.out.print("*");}else {System.out.print(" ");}}System.out.println();}
}

打印结果如图所示:

菱形代码优化

以上实现打印菱形的代码比较复杂,我们可以对代码进行优化

/*
菱形代码优化
*/
public static void print07() {for(int x = -5;x<=5;x++) {for(int y = -5;y<=5;y++) {if((x>0?x:-x)+(y>0?y:-y)<=5) {System.out.print("*");}else {System.out.print(" ");}}System.out.println();}

输出结果如图所示:

用Java语言编写打印菱形相关推荐

  1. c语言打印空心数字图形,(完整word版)C语言编写打印实心和空心菱形【源码】

    <(完整word版)C语言编写打印实心和空心菱形[源码]>由会员分享,可在线阅读,更多相关<(完整word版)C语言编写打印实心和空心菱形[源码](13页珍藏版)>请在人人文库 ...

  2. 无Bug,Java语言编写根据出生日期判断属相和星座

    根据出生日期判断属相和星座,Java语言编写,无bug 习题代码 package com.newer.oop;import java.util.InputMismatchException; impo ...

  3. java写便签_如何编写一个便签程序(用Java语言编写)

    如何编写一个便签程序(用Java语言编写) 热度:336   发布时间:2011-02-18 11:44:16 如何编写一个便签程序(用Java语言编写) 因为以前没有好好学习Java,都搞忘了,请大 ...

  4. jdbc是java语言编写的类和接口_JDBC——Java语言连接数据库的标准

    JDBC概述 API JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  5. 用Java语言编写的随机彩色验证码

    在制作网页过程中,免不了在登录注册页面增加一个验证码来延长数据提交时间,以免大量用户过快连接数据库读取,写入数据导致服务器崩溃.以下是用Java语言编写的彩色验证码,可用于jsp.html文件. 源代 ...

  6. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)

    使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置 jdk-15.0.1-免配置路径版 提取码:earu 免 ...

  7. java语言编写计算器_第二次作业利用java语言编写计算器进行四则运算

    随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...

  8. 利用Java语言编写一个猜数字游戏(有次数限制)

    猜数字小游戏. 利用Java语言编写. 题目: 用代码模拟猜数字的小游戏. 思路: 1.首先需要产生一个随机数字,并且一旦产生不再变化.用Random的nextInt方法 2.需要键盘输入,所以用到了 ...

  9. java语言开发手机游戏_手机上的JAVA游戏和JAVA软件,是电脑上的JAVA语言编写的吗?他们之间有什么联系...

    手机上的JAVA游戏和JAVA软件,是电脑上的JAVA语言编写的吗?他们之间有什么联系以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起 ...

最新文章

  1. 为啥现在4位单片机依然没有被淘汰?4位单片机还有用的吗?
  2. 2019\Province_C_C++_B\试题A-组队
  3. timthumb.php外链,如何解决WordPress多站点不支持timthumb.php?
  4. ADPC2-G 希望
  5. 事件捕获(capture)和冒泡事件(Bubble)
  6. 非名校学生如何进入一二线互联网公司
  7. 春眠不觉晓,读书醒醒脑|世界读书日送书征集
  8. Spring数据转换(二)-- @InitBinder
  9. hive -e执行命令报错
  10. 阶段3 1.Mybatis_11.Mybatis的缓存_3 mybatis一对一实现延迟加载
  11. matlab机器学习预测股价+python爬虫
  12. java rtf读取,java读取rtf
  13. 怎么做说课PPT课件?
  14. 多渔:苦干执行,胜者为王!
  15. imx6ul使用官方SDK裸机及驱动包
  16. 【转】VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(上)
  17. 网络天气预报项目笔记(Qt)
  18. c语言iota函数,C++ iota函数用法详解
  19. 性能测试之线上引流测试--让性能测试更真实更丰富
  20. GraphQL 浅谈,从理解 Graph 开始

热门文章

  1. Spark RDD 极简教程
  2. GHOST的口诀:备份122、还原123
  3. 面试秘籍 | 测试工程师的简历该怎么写?(带样例)
  4. 学完这个你就成为excel高手了!(Delphi对Excel的所有操作)逐个试试!
  5. 欢迎评论指正,如有问题可在具体文章下或本文留言,看见就回!
  6. 微信扫描登录(生成二维码)
  7. 有关上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别
  8. Going out on a limb:Joint Extraction of Entity Mentions and Relations without Dependency Trees【论文笔记】
  9. 文化是一种meme,NFT也是
  10. 计算机视觉之人脸识别(Yale数据集)--HOG和ResNet两种方法实现