图 1

要输出如图1所示的菱形,第一反应是看看这个菱形有什么特点。在草稿纸上比划了半天,将图1转化成了图2用数字表示的图

图 2

比较图1和图2发现有以下特点:

(1)图2中的每一个数字代表图1中每个*号在所在行的列号。

(2)6+6、5+7、4+8、3+9、2+10、1+11均等于12。

由于菱形是对称的,所以先考虑上半部分,即如图3所示

图 3

仔细观察图3,可以发现:

(1)图3为6行11列。

(2)左半部分第1行为6、第2行为5、..............、第6行为1;由此可知外循环应使用for(int i=6;i>=1;i--)

(3)用i代表行号,j代表列号;当i=j或者j=12-i时该位置的应输出*号,其他位置输出空格。

有了以上分析,就可以写出输出图3所示图形的核心代码,如下:

[java] view plain copy

for(int i=6;i>=1;i--){   //菱形的上半部分  
        for(int j=1;j<=11;j++){  
            if(i==j||j==12-i){  
                System.out.print("*");  
            }else{  
                System.out.print(" ");  
            }  
        }  
        System.out.println();  
    }

要想输出菱形的下半部分,只需将外循环改为for(int i=2;i<=6;i++)即可。

看到这儿,相信你不用看下面的完整代码,自己就可以完全写出实现的代码了!如果你还没有写,动手实践一下吧!

附录:完整代码:

[java] view plain copy

public class Diamond {  
      
        public static void main(String[] args) {  
            // TODO Auto-generated method stub  
      
            for(int i=6;i>=1;i--){   //菱形的上半部分  
                for(int j=1;j<=11;j++){  
                    if(i==j||j==12-i){  
                        System.out.print("*");  
                    }else{  
                        System.out.print(" ");  
                    }  
                }  
                System.out.println();  
            }  
              
            for(int i=2;i<=6;i++){    //菱形的下半部分  
                for(int j=1;j<=11;j++){  
                    if(i==j||j==12-i){  
                        System.out.print("*");  
                    }else{  
                        System.out.print(" ");  
                    }  
                }  
                System.out.println();  
            }  
        }  
    }

java空心菱形的更多相关文章

  1. Java基础知识强化07:打印出空心菱形

    1.如图打印出空心菱形: 2.下面是逻辑实现代码: package himi.hebao04; import java.util.Scanner; public class TestDemo08 { ...

  2. Java 写三角形 空心三角形 菱形 空心菱形

    闲来无事,练习了一下Java基础中的循环语句.练习循环语句,当然少不了,用*打印出来三角形.空心三角形.菱形等这样的几何图形. 粗心大意,失误两次: 一.三角形 遇到一些小问题: 二.金字塔 由于三角 ...

  3. for循环输出空心菱形的形状【java】

    使用for循环语句输出以下“空心菱形”效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: ...

  4. java中打印实心菱形以及空心菱形的方法

    一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...

  5. java杨辉三角和空心菱形(二维数组篇)

    一.杨辉三角 import java.util.Scanner; //导入包 public class Test7 { public static void main(String[]args){ S ...

  6. Java打印空心菱形

    使用Java打印空心菱形 public static void main(String[] args) { int n = 5; //这里输出菱形的上半部分 for (int i = 1; i < ...

  7. java在控制台输出空心正方形,菱形,空心菱形

     使用for和if打印一个空心正方形 /*思路:要想打印一个5x5的空心正方形,首先它的第一横行和最后一行都是填满的,需要全部遍历出来,第二三四行和只有左右两条边是出来的,中间部分为空的.因此在打印第 ...

  8. Java温故而知新-空心菱形

    空心菱形 今天做题练手,题目是空心菱形,一开始没什么思路,去网上找了找,发现很难找到讲的通透的,自己现在独立做出来了,记录一下,以备后用. * * * * * * * * * * * * * * * ...

  9. java 打印空心菱形的两种实现

    第一种实现方式: //打印给定行数的空心菱形 public static void draw(int size){ if (size % 2 == 0) //如果是偶数行变为奇数 { size++; ...

随机推荐

  1. PP图和QQ图 检查2个数据集是否符合同一分布

    1.QQ图检查2个数据集是否符合同一分布,Purpose:Check If Two Data Sets Can Be Fit With the Same Distribution PP图和QQ图 - ...

  2. Mac终端的Cocoapods的安装及使用

    阅读目录 第一步,首先要检查Mac是否安装了rvm.打开终端,输入指令 rvm -v 第二步,用rvm安装ruby环境 第三步,检查更新RubyGems(Ruby1.9.1 以后的版本自带RubyGe ...

  3. LeetCode 784 Letter Case Permutation 解题报告

    题目要求 Given a string S, we can transform every letter individually to be lowercase or uppercase to cr ...

  4. jquery validate强大的jquery表单验证插件

    jquery validate的官方演示和文档地址: 官方网站:http://jqueryvalidation.org/ 官方演示:http://jqueryvalidation.org/files/ ...

  5. python武器库

    1,开发库You-GetYouTube/Youku/Niconico视频下载器Zipline一个Pythonic的交易算法库docopt为Python程序创造一个优雅的命令行界面PDFMinerPyt ...

  6. python摸爬滚打之day06----小数据池、编码解码

    1.小数据池 代码块:  一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一个文件也是一个代码块.而不需要创建一个新的数据. 这样会节省更多的内存区域. 在cmd命令行 ...

  7. java 集合(三)List接口

    package cn.sasa.demo1; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...

  8. Asp.net Mvc Ajax.BeginForm提交表单

    之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMetho ...

  9. nodejs 学习五 单元测试一

    一. chai chai 自身是依赖nodejs的 assert,让检测更加语义化. chai 采用两种模式,TDD和BDD, TDD是类似自然语言方式 BDD是结构主义 chai文旦地址 二.moc ...

  10. 【CART与GBDT】

    一.CART(分类回归树)    1.思想:     一种采用基尼信息增益作为划分属性的二叉决策树.基尼指数越小,表示纯度越高.  2.回归: 每个节点都有一个预测值,预测值等于属于该节点的所有样例的 ...