第一遍是看了视频,听老师讲解嵌套循环的使用,然后到星星图形这一步,当时都觉得听明白了,但是自己去做,就是写不出来

第二遍看了赵老师的教程,看了好熟悉的感觉,还是自己写不出来

第三遍找网上关于图形的嵌套循环讲解,说实话,每个例子都好烂,而且还有错误

第四遍,昨晚上回到家,看了2集<欢乐颂>后,觉得想不通心里实在难受的慌,就跟不做开发已经几年的老公请教了一下。。被教导说你先要理解什么是嵌套循环,嵌套循环是怎么执行的。。。balabala.......

第五遍,自己又去分析思路,感觉上有点开窍了,那4个图形,矩形、等腰三角形、平形四边形、棱形

分析思路:

1、平形四边形:

*****

*****

*****

*****

*****

首先,我总体是要运行5行的,这是第一层的循环

然后,第一行的循环,包括4个空格+5颗星

.......

根据视频中老师的教法,还是弄个列表好看一些

行   =   空格   +  星

1        4         5

2        3         5

3        2         5

4        1         5

5        0         5

分析上面这个公式:

第1列,行数是自增的,1、2、3、4、5给它弄个for循环啦for(int i=1;i<=5;i++)

第2列和第3列,是同一层的,所以注意循环语法的位置,但他们都是第1列的里面的东西,你可以认为第1列是和,第2和第3列是组成第1列的元素,所以第1列的for应该是最外层的

那么第2列空格,要找一个与现有变量i和已知行数能扯上关系,且每行都通用的表达式,5-i 不就是吗。那么,第2列,我第一次执行4次,每次输出一个空格,第二次。。。。。。以此类推

第3列星,固定都是5,都不想再说什么了,直接循环5次,每次取1颗星呗

代码如下:

For(int i=1;i<=5;i++){

   For(int j=1;j<=(5-i);j++){

      System.out.print(“ ”);//每次打印1个空格,根据j的值,来确定每次空格的数量

   }

   For(int k=1;k<=5;k++){

     System.out.print(“*”);//每次打印1颗星,它要循环5层,就是5颗星

   }

System.out.println();//每一行后,我要换行

}

2、矩形

这个本身比较简单,都不太想列。就是每行5颗星

第一行用个循环输出5颗星,需要输5行,那就外面再加一层循环吧!

这里要注意,每一行的换行,是放在外层循环里,和输出的每一行是同级的

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

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

        System.out.print("*");

    }

    System.out.println();

}

3、等腰三角形

*

***

*****

*******

*********

***********

还是一样的分析步骤,一共有6行,第一行由空格和*组成,

行   =   空格   +  星

1        5 =6-1       1 =2*1-1

2        4 =6-2       3=2*2-1

3        3 =6-3       5=2*3-1

4        2 =6-4       7=2*4-1

5        1 =6-5       9=2*5-1

6        0 =6-6       11=2*6-1

这次,星星和空格的循环次数都不是固定的,都需要与i的值来扯上点关系,发挥你的想像找个与I相关的表达式吧

看上图,空格的循环总次数每一行应该是6-i

星星,也要扯个表达式与i或空格相关:2*i-1

好啦,找表达式,也是个脑力活,我这脑子明显不够用了!!!!

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

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

        System.out.print(" ");

    }

    for(int k=1;k<=(2*i)-1;k++){

        System.out.print("*");

    }

System.out.println();

}

4、棱形:切,不就是2个等腰三角形嘛,分解成2个等腰三角形,同层连接起来不就行了嘛

*

***

*****

*******

*********

*********** 从这里上半部分我们在等腰三角形中已打印出来了,就只用再把下面打出来

*********

*******

*****

***

*

一样的分析步骤:

行    空格    星

1     1       9 =9-2*(1-1)

2     2       7=9-2*(2-1)

3     3       5=9-2*(3-1)

4     4       3=9-2*(4-1)

5     5       1=9-2*(5-1)

		for(int i=1;i<=6;i++){
for(int j=1;j<=6-i;j++){
System.out.print(" ");
}
for(int k=1;k<=(2*i)-1;k++){
System.out.print("*");
}
System.out.println();
}
for(int a=1;a<=5;a++){
for(int b=1;b<=a;b++){
System.out.print(" ");
}
for(int c=1;c<=9-2*(a-1);c++){
System.out.print("*");
}
System.out.println();
}
//倒三角也可以这样写:
        for(int j=4;j>0;j--){
for(int k=1;k<=5-j;k++){
System.out.print(" ");
}
for(int a=1;a<=2*j-1;a++){
System.out.print("*");
}
System.out.println();
}

  

总结:那个星星的表达式好难找。。。。这跟小学2年级暑假作业上的算术题一样难。。。。

使用Java的嵌套循环打印出平行四边形、等腰三角形、棱形、矩形的星星图案(Java工程师面试必备)的更多相关文章

  1. java利用反射打印出类的结构

    1 输入一个类名:java.lang.String将打印出String类定义的结构,例如: public final class java.lang.String { public java.lang ...

  2. java如何LOG打印出日志信息

    log4j 记录日志方式 log4j 是apache 提供的记录日志的jar 档. 下载路径: http://logging.apache.org/log4j/1.2/download.html 这里 ...

  3. jvm系列(八):jvm知识点总览-高级Java工程师面试必备

    在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...

  4. JVM知识点总览-中高级Java工程师面试必备

    对于搞开发的我们其实也是一样,现在流行的框架越来越多,封装的也越来越完善,各种框架可以搞定一切,几乎不用关注底层的实现,初级程序员只要熟悉基本的使用方法,便可以快速的开发上线:但对于高级程序员来讲,内 ...

  5. JVM 知识点总览 - 高级 Java 工程师面试必备

    在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后 ...

  6. JVM(8):JVM知识点总览-高级Java工程师面试必备

    http://www.importnew.com/23792.html jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点 ...

  7. JVM知识点总览-高级Java工程师面试必备

    jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图, ...

  8. javap 可以打印出用于jni调用的java函数的签名信息

    javap可以打印出java的字节码: -c     Prints out disassembled code, i.e., the instructions that comprise the Ja ...

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

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

随机推荐

  1. smarty变量调节器

    smarty中变量调解器的作用:在模板中需要对PHP分配过来的变量在输出之前,对变量进行处理 注册变量调解器方式:$smarty->registerPlugin("modifier&q ...

  2. 【ArcGIS二次开发】CreateFeature报错(HRESULT E_FAIL)

    在VS2010下基于ArcGIS 10.1做二次开发时遇到个奇怪的问题,对于MXD工程文档中已经存在的图层,获取其FeatureClass可以调用CreateFeature()函数生成要素,但是对于通 ...

  3. U5398 改数(num)

    U5398 改数(num) 5通过 28提交 题目提供者52zyz 标签 难度尚无评定 提交 最新讨论 暂时没有讨论 题目背景 又是一年NOIP,科学馆的五楼:“我们看下这道题,我们来模拟一下…2,3 ...

  4. 【转】【C#】C#性能优化总结

    1.  C#语言方面         1.1 垃圾回收    垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意.    1.1.1 避免不必要的对象创 ...

  5. Linux 守护进程二(激活守护进程)

    //守护进程--读文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...

  6. 将Log4net的配置配置到的独立文件中

    本文转载:http://blog.csdn.net/wanzhuan2010/article/details/7587780 另外一篇博客:http://grim1980.blog.sohu.com/ ...

  7. Asp.net Json数据解析的一种思路

    在日常的编码中,经常会遇到JSON类型的数据,有简单的,也有复杂的.对于简单的,我们可以用正则等匹配,但是一旦遇到复杂的,就比较难办了. 数据分析 目前手头上需要制作一个天气预报功能,现成的接口已经有 ...

  8. 2016国产恐怖惊悚《诡娃》HD720P.国语中字

    导演: 蒋国权编剧: 任旭东主演: 李抒航 / 程媛媛 / 孔维类型: 惊悚 / 恐怖制片国家/地区: 中国大陆语言: 汉语普通话上映日期: 2016-02-25(中国大陆)片长: 89分钟诡娃的剧情 ...

  9. 将matlab中数据输出保存为txt或dat格式

    :FID= FOPEN(filename,permission) 用指定的方式打开文件 FID=+N(N是正整数):表示文件打开成功,文件代号是N. FID=-1            : 表示文件打 ...

  10. 20145208 实验五 Java网络编程

    20145208 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务 ...