黑马程序员技术交流社区

标题: 秀一个for循环在控制台打印空心菱形的代码,号称钻石 [打印本页]

作者: zxj35986847    时间: 2015-5-6 21:28
标题: 秀一个for循环在控制台打印空心菱形的代码,号称钻石
本帖最后由 zxj35986847 于 2015-5-12 09:57 编辑

直接上代码.没事可以进来绕几圈.哈哈.给技术啊.管理们...  要考黑马啊......谢谢了.
/*
        for循环输出空心菱形
        设计过程:
                        1.创建Diamond类,在该类的主方法中调用printHollowRhombus()方法完成10行的空心菱形的输出。
                        2.其中printHollowRhombus()方法是自定义的,该方法使用两个双侧for循环分别输出菱形的上半部分和下半部分。
*/
public class Diamond{
        
        public static void main(String[] args){
        
                printHollowRhombus(10);
               
        }
        
        public static void printHollowRhombus(int size){
                if(size%2==0){
                        size++;
                }
                for(int i=0;i<size/2+1;i++){
                        for(int j=size/2+1;j>i+1;j--){
                                //输出左上角位置的空白
                                System.out.print(" ");
                        }
                        for(int j=0;j<2*i+1;j++){
                                if(j==0||j==2*i){
                                        //输出菱形上半部边缘
                                        System.out.print("*");
                                }else{
                                        //输出菱形上半部空心
                                        System.out.print(" ");
                                }
                        }
                        System.out.println("");
                }
                for(int i =size/2+1;i<size;i++){
                        for(int j=0;j<i-size/2;j++){
                                //输出菱形左下角空白
                                System.out.print(" ");
                        }
                        for(int j=0;j<2*size-1-2*i;j++){
                                if(j==0||j==2*(size-i-1)){
                                        //输出菱形下半部边缘
                                        System.out.print("*");
                                }else{
                                        //输出菱形下半部空心
                                        System.out.print(" ");
                                }
                        }
                        System.out.println("");
                }
        }
}

针对有人说这个代码麻烦,我这还有个版本.发下,看看这个能简单点?
这个加入了键盘录入的效果.

package com.ifuwant;

import java.util.Scanner;

public class Tests {

        public static void main(String[] args) {

                Scanner sc = new Scanner(System.in);

                System.out.println("请输入菱形边长:");

                int num = sc.nextInt();

                for (int i = 1; i <= num; i++) {

                        for (int j = 1; j < num - i + 1; j++) {

                                System.out.print(" ");

                        }

                        int count = 2 * i - 1;

                        for (int k = 0; k < count; k++) {

                                if (0 == k || count - 1 == k)

                                        System.out.print("*");

                                else

                                        System.out.print(" ");

                        }

                        System.out.println("");

                }

                for (int i = 1; i < num; i++) {

                        for (int j = 1; j <= i; j++) {

                                System.out.print(" ");

                        }

                        int count = 2 * (num - i) - 1;

                        for (int k = 0; k < count; k++) {

                                if (k == 0 || k == count - 1)

                                        System.out.print("*");

                                else

                                        System.out.print(" ");

                        }

                        System.out.println("");

                }

        }

}





作者: lixunwen    时间: 2015-5-7 15:02
不错!但是你不觉得你的代码过于多了么
作者: 张伟1942    时间: 2015-5-7 18:39
写的很好,来学习一下
作者: wangyu    时间: 2015-5-7 19:36
我更倾向于直接用输出语句来输出一个钻石
作者: 18463730277    时间: 2015-5-7 19:38
for循环输出空心菱形,用的很好
作者: zxj35986847    时间: 2015-5-8 04:21
lixunwen 发表于 2015-5-7 15:02
不错!但是你不觉得你的代码过于多了么

如何简化?
作者: zxj35986847    时间: 2015-5-8 04:23
wangyu 发表于 2015-5-7 19:36
我更倾向于直接用输出语句来输出一个钻石

是哈.还是你聪明
作者: 397543420    时间: 2015-5-8 07:22
楼主不错,赞一个哈
作者: zxj35986847    时间: 2015-5-8 21:00
397543420 发表于 2015-5-8 07:22
楼主不错,赞一个哈

谢谢.

就是发点有意思的看看.

呵呵

作者: 王英明    时间: 2015-5-8 21:05
真高级没看懂
作者: lshaizj    时间: 2015-5-8 21:07
http://bbs.itheima.com/thread-191674-1-1.html
空心菱形
作者: zxj35986847    时间: 2015-5-8 21:08
王英明 发表于 2015-5-8 21:05
真高级没看懂

{:2_32:}{:2_32:}


多看看就好了..
作者: 柒仴、看雲佉    时间: 2015-5-8 21:08
可以继续优化的其实看起来
作者: zxj35986847    时间: 2015-5-9 11:23
柒仴、看雲佉 发表于 2015-5-8 21:08
可以继续优化的其实看起来

怎么优化?  求代码.
作者: 19期1910    时间: 2015-5-10 00:18
顶一个。
作者: zxj35986847    时间: 2015-5-10 22:05
19期1910 发表于 2015-5-10 00:18
顶一个。







谢谢
作者: 马鹏涛    时间: 2015-5-10 22:27
不错,顶一个.你是个追求完美的吗
作者: zxj35986847    时间: 2015-5-12 09:50
马鹏涛 发表于 2015-5-10 22:27
不错,顶一个.你是个追求完美的吗

算是吧.呵呵.比较喜欢漂亮的格式.怎么了?
作者: 空--格    时间: 2015-5-12 21:25
顶一个,
作者: 追梦德鲁    时间: 2015-5-12 21:29
思想是程序员的方向感 加油
作者: 守株人    时间: 2015-5-12 22:05
好厉害,长知识了
作者: luodim    时间: 2015-5-12 22:16
要判断的点还是很多的啊
作者: liya7907    时间: 2015-5-12 22:56
暂时还没看懂,哎,想混口饭吃好难~
作者: zxj35986847    时间: 2015-5-13 00:39
守株人 发表于 2015-5-12 22:05
好厉害,长知识了

哈哈


就是娱乐
作者: zxj35986847    时间: 2015-5-13 00:40
luodim 发表于 2015-5-12 22:16
要判断的点还是很多的啊

呵呵  嗯嗯

看看
作者: zxj35986847    时间: 2015-5-13 00:41
liya7907 发表于 2015-5-12 22:56
暂时还没看懂,哎,想混口饭吃好难~

呵呵,时间长就好了.

都一样
作者: zxj35986847    时间: 2015-5-13 00:42
liya7907 发表于 2015-5-12 22:56
暂时还没看懂,哎,想混口饭吃好难~

呵呵,时间长就好了.

都一样
作者: 横看成岭侧成锋    时间: 2015-5-13 09:02
怎么做到的?
作者: zxj35986847    时间: 2015-5-13 22:05
横看成岭侧成锋 发表于 2015-5-13 09:02
怎么做到的?

:L


什么怎么做到的

作者: 横看成岭侧成锋    时间: 2015-5-13 22:09
zxj35986847 发表于 2015-5-13 22:05
什么怎么做到的

打印空心菱形的规律,是怎么找到的?
作者: 魔蝎座    时间: 2015-5-13 22:16
思路比较好
作者: 932773877    时间: 2015-5-13 22:43
。。。。。。。。。。。。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2