黑马程序员技术交流社区

标题: 今天自习,自己写了个小程序,打印输出个菱形 [打印本页]

作者: 我要当大牛    时间: 2015-6-25 18:44
标题: 今天自习,自己写了个小程序,打印输出个菱形
昨天学的for嵌套循环,学会了输出正三角形和倒三角形.正三角形和倒三角形加起来不就是个菱形吗.
/*
        0625,今天自习
        需求:定义一个小程序,打印菱形
               
                     *
                    * *
                   * * *
                  * * * *
                 * * * * *
                * * * * * *
                 * * * * *
                  * * * *
                   * * *
                    * *
                     *

        思路:
                -----*
                ----* *
                ---* * *
                --* * * *
                -* * * * *
                * * * * * *
                -* * * * *
                --* * * *
                ---* * *
                ----* *
                -----*
        其实是这样的,前边加了个空格型的的三角形.

        现在写代码习惯写个函数封装,便于复用.
        返回值为空,没有未知变量
       
        写完了,可是这样毫无扩展性可言,想定义一个用户自己定义行数的,打算使用Scanner 键盘录入

        结论:通过自己的推理,发现lingXing(),调用函数的时候()里可以填一个定义好的变量.


*/       
import java.util.Scanner;//导包
class ForForTest2
{
        public static void main(String[] args)
        {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入行数");
                //获取键盘录入的下一个int值
                int number = sc.nextInt();
                lingXing(number);
        }
        public static void lingXing(int hang)
        {
                /*
                //调用对象
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入行数");
                //获取键盘录入的下一个int值
                int hang = sc.nextInt();
                */
                System.out.println("Surpise:");
                //先写上半部分
                for (int x = 0;x <hang ;x++ )
                {
                        //写空格的尖朝下的三角形. 5 4 3 2 1 0
                        for (int y = x ;y < hang - 1 ; y++ )
                        {
                                System.out.print(" ");//打印空格
                        }
                        //写*组成的正三角形 1 2 3 4 5 6
                        for (int z = 0;z<=x ;z++ )
                        {
                                System.out.print("* ");
                        }
                        System.out.println();
                }
                //写下半部分 比上边少一行
                for (int x = 0; x < hang -1 ;x++ )
                {
                        //写尖朝上的空格组成的三角形  1 2 3 4 5
                        for (int y = 0;y<=x ;y++ )
                        {
                                System.out.print(" ");
                        }
                        //写尖朝下的*组成的正三角形
                        for (int z =x;z<hang - 1 ;z++ )
                        {
                                System.out.print("* ");
                        }
                        System.out.println();
                }
       
       
       
       
        }


}


作者: keto    时间: 2015-6-25 21:31
学习了。谢谢分享。。。
作者: 含笑    时间: 2015-6-25 23:08
谢谢,学习下你的代码
作者: 符慢慢    时间: 2015-6-25 23:11
估计  和你是一个班的

作者: 陌上桑    时间: 2015-6-26 11:35
学c的时候就,这是最常见的题,,,,
作者: 小龙编程世界    时间: 2015-6-26 18:01
还不错,继续加油。。。。
作者: fantianfei    时间: 2015-6-26 18:40
zhangkai986745 发表于 2015-6-26 00:19
以前学习时还会,现在不会了

哈哈,其实我也这么感觉,学的是思想,不是记代码,等我们能有清晰的思路的时候,忘记又何妨?
作者: czf小耗子    时间: 2015-6-26 18:48
思路很清晰嘛
作者: fantianfei    时间: 2015-6-26 18:49
编程,是一种看待事物的独特眼光。
作者: 郑汉伟    时间: 2015-6-26 18:52
多谢分享
作者: zlpiano    时间: 2015-6-26 19:14
好,来学习一下
作者: 小灬清新丶    时间: 2015-6-26 20:12
学习一下,谢谢了
作者: 水壶vs兔子    时间: 2015-6-27 10:18
又复习了一遍,楼主厉害!




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