仓酷云

标题: 了解下JAVA的Java小例子:打印一个金字塔 [打印本页]

作者: 老尸    时间: 2015-1-18 11:12
标题: 了解下JAVA的Java小例子:打印一个金字塔
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。
这是最基本的例子了,每一个初学者城市要做这个标题。这个标题的目标是熟习轮回特别是嵌套轮回的利用。可是假如对Java充足熟习,转头来再写这个程序,就完整不是这么写的了。
嵌套轮回长短常庞大的逻辑。出格是写得很长的嵌套轮回,一个不当心把j写成i,就够你调试半天的。以是嵌套轮回应当只管制止。怎样制止?将外部轮回提取成一个办法。如许每一个办法里都只要一层轮回,简单看,简单改,并且不简单堕落。
import java.util.Arrays;

/**

 * 打印一个字符构成的金字塔

 */

public class Pyramid {

    // 程序出口

    public static void main(String[] args) {

        printPyramid(21, *);

    }

    /**

     * 打印一座金字塔。

     *

     * @param bottom_width 底层宽度。必需是奇数。

     * @param ch           构成金字塔的字符

     */

    private static void printPyramid(int bottom_width, char ch) {

        if (bottom_width < 1 || bottom_width % 2 == 0) {

            throw new IllegalArgumentException();

        }

        int height = bottom_width / 2 + 1;  // 金字塔的高度

        for (int i = 0; i < height; i++) {

            int width = i * 2 + 1;    // 本层的宽度

            System.out.println(getLevel(bottom_width, width, ch));

        }

    }

    /**

     * 天生金字塔的一行

     *

     * @param bottom_width 金字塔宽度

     * @param width        本层的宽度

     * @param ch           要打印的字符

     *

     * @return 金字塔的一行

     */

    private static String getLevel(int bottom_width, int width, char ch) {

        int space_width = (bottom_width - width) / 2;   // 后面空格的宽度

        return expand( , space_width) + expand(ch, width);

    }

    /**

     * 天生包括多少个字符的字符串。

     *

     * @param c     天生字符串的字符

     * @param width 字符串的长度

     *

     * @return 天生的字符串

     */

    private static String expand(char c, int width) {

        char[] chars = new char[width];

        Arrays.fill(chars, c);

        return new String(chars);

    }

}
看完你大概以为奇异:这里有嵌套吗?有。Arrays.fill()办法终极就是经由过程轮回实现的。

恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
作者: 若相依    时间: 2015-1-20 17:06
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 若天明    时间: 2015-1-29 13:16
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 不帅    时间: 2015-2-6 01:19
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 小女巫    时间: 2015-2-14 19:50
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 分手快乐    时间: 2015-2-28 14:43
是一种为 Internet发展的计算机语言
作者: 金色的骷髅    时间: 2015-3-4 12:53
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 小魔女    时间: 2015-3-11 16:51
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 兰色精灵    时间: 2015-3-19 15:13
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 谁可相欹    时间: 2015-3-28 16:25
Java 编程语言的风格十分接近C、C++语言。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2