Java第二十五篇:打印实心菱形、空心菱形以及金字塔三角形

正在看这篇文章的你,肯定是个爱学习的人儿!奥利给!

最近有同学看了我写的Java第十三篇博文:打印九九乘法表,产生了这样的疑惑:
根据这篇文章,我可以打印实心菱形和空心菱形吗?
答案:肯定能实现,我们一起来看看叭。

1.打印实心菱形

package study;/*** * @author 重工黑大帅* @date 2020.2.5* @see everyone* 实现功能:打印实心菱形**/
public class Study{public static void main(String args[ ]) {      int i,j,k;  //实例变量可以不赋初值,我建议还是赋初值,养成好习惯,变量i代表代表图形的行数,变量j代表图形的个数,变量k用来控制空格数String ch="*"; //定义图形形状System.out.println();  //控制台打印图形间隔一行//实心菱形上半部分for(i=1;i<=4;i++){	 //	控制图形行数for(k=1;k<=4-i;k++) {   //控制空格数System.out.print(" ");}for(j=1;j<=i;j++){   //控制"*"个数System.out.print(ch+" ");}System.out.println();  //换行}//实心菱形下半部分//	for(i=1;i<=3;i++){		   //控制图形行数for(k=1;k<=i;k++) {      //	控制空格数System.out.print(" ");}for(j=1;j<=4-i;j++){System.out.print(ch+" ");//控制"*"个数}System.out.println();   //换行}}
}

结果显示:
在这里插入图片描述
过程分析:
打印这类图形,我们首先就要想到用嵌套for循环来实现,这类图形的打印也是很多比赛和面试喜欢拿来用的,大家平时多积累,多练习,欢迎留言交流,共同进步。其次,常规套路,三个变量:行数,列数,图形个数(i,j,k),虽然看着没几行代码,但要去实现还是需要经过思考,最好的办法就是多敲多练习。

2.打印空心菱形

说到空心菱形,就是把上述结果中图形的中心变成空白,如下图:
在这里插入图片描述
相对于上述打印实心菱形来说,打印空心菱形稍微有一点高度的提升,但只要你想通了,注重细节,我相信你也可以快速掌握的,话不多说,上菜:

//打印空心菱形
public class Study{public static void main(String args[ ]) {      int i,j,k; //实例变量可以不赋初值,我建议还是赋初值,养成好习惯,变量i代表代表图形的行数,变量j代表图形的个数,变量k用来控制空格数String ch="*";  //定义图形形状//打印上半部分图形for(i=1;i<=4;i++){	  //	确定行数for(k=1;k<=4-i;k++) {   //控制空格数System.out.print(" ");}for(j=1;j<=i;j++){    // 控制"*"数量if(j==3||j==4) {continue;}System.out.print(ch+" ");if(i==3) {System.out.print("  ");}if(i==4) {System.out.print("    ");}}System.out.println();}for(i=1;i<=3;i++){		for(k=1;k<=i;k++) {System.out.print(" ");}for(j=1;j<=4-i;j++){//这儿是核心if(j==2 && i==1) {System.out.print("  "+ch);break;}System.out.print(ch+" ");}System.out.println();}}
}

结果显示:
在这里插入图片描述
过程分析:
在我打印空心菱形之前,我也模仿自己在不清楚的情况下,打印出的图形是这样的:(以下图形是错误的,仅供学习参考)
在这里插入图片描述
图1

在这里插入图片描述
图2
在这里插入图片描述
图3
上述三种图形都是错误的,在分析倒着打印三角形的时候,我发现变量j的值都是从1开始的,那每次都会执行到j=2,这就有点难受:我如果对j=2这一步进行操作,第二行没问题,但第三行打印出来的图形就会错位,如下图:
在这里插入图片描述
我如果调整第三行,那第二行的图形也会受到影响,那怎么办呢?这个时候我就行到了变量i,我来改变i的值,看看会不会得到我想要的图形,但结果还是没得到我想要的图形,如下图(调整变量i得到的图形):在这里插入图片描述
我沉思了一会,仔细观察了一下程序,变量i和变量j都会经过j=2这个环节,但是变量i的值却不一样,一个是i=1,一个是i=2,那这个时候逻辑与就上场了(等了这么久,终于轮到我上场了!),所以这个时候就可以区别了,问题得到解决,开心叭!

3.打印金字塔三角形

public class Study{public static void main(String args[ ]) {      int i,j,k;  //实例变量可以不赋初值,我建议还是赋初值,养成好习惯,变量i代表代表图形的行数,变量j代表图形的个数,变量k用来控制空格数String ch="*"; //定义图形形状System.out.println();  //控制台打印图形间隔一行//实心菱形上半部分for(i=1;i<=10;i++){	 //	控制图形行数for(k=1;k<=10-i;k++) {   //控制空格数System.out.print(" ");}for(j=1;j<=i;j++){   //控制"*"个数System.out.print(ch+" ");}System.out.println();  //换行}}
}

结果显示:
在这里插入图片描述
拓展题:
在这里插入图片描述
这是留给读者的练习题,看过这篇博客的同学尽量练习,加深印象,不要只会纸上谈兵哈,答案若有需要我会发在留言中。

有疑问欢迎留言!

点个赞,加个关注呗!嘿嘿!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部