失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java 使用*打印图形(菱形 平行四边形 三角形)

java 使用*打印图形(菱形 平行四边形 三角形)

时间:2021-06-06 09:19:25

相关推荐

java 使用*打印图形(菱形 平行四边形 三角形)

打印图形

画图题的解决方法:首先是要确定要画图形的各个参数如图形的边数、打印的字符;然后确定每一行要输出的字符数和空格数(字符和空格数的初始值);从输出的字符数和空格数推测出是递增还是递减;最后是判断终止条件或者是变换方向的条件。

通常是以下代码

public static void XX(){//变量number(一般是行数/作为循环次数)int number = 10;//输出的字符串String str = "* ";//n - 这一行str的数量(首行打印的次数)int n = number;//m - 这一行开始空格的数量(首行空格数)int m = 0;//标志位 - 控制方向 true->递减 false->递增(判断是否需要变换打印如本例的菱形)boolean flag = true;//循环输出每行的打印for(;n <= number;){//输出m个空格for(int i = 0; i < m; i++){System.out.print(" ");}//输出n个str字符串for(int i = 0; i < n; i++){System.out.print(str);}if(n == 1){//调换方向flag = false;}if(flag){//下一行str递减,空格要递增m++;n--;} else {m--;n++;}//输出完一行,换行System.out.println();}}

三角形

打印三角形,从形状可以判断要输出的字符是“* ”,要打印的行数是8;要打印的字符数跟行数一致也就是说逐行递增而空格是逐行递减,终止的条件可以直接用for循环8次即可。

public static void Triangle(){//图形要输出的行数int number = 8;//图形要输出的字符串String str = "* ";//输出的空格int m = number;//每行要输出字符串的数量int n = 1;for(;n <= number;){//输出空格for (int i = 0; i < m; i++) {System.out.print(" ");}//输出字符串for (int i = 0; i < n; i++) {System.out.print(str);}m--;n++;System.out.println();}}

菱形

打印菱形,从形状可以判断要输出的字符是“* ”,要打印的行数是11但是需要循环12此才能打印出;要打印的字符数跟行数一致也就是说逐行递增而空格是逐行递减但是到了第六行行数跟字符数是递减关系、和空格数是递增关系,所以在打印第六行要做一个转向变换的条件(n == number/2)。终止的条件为输出的字符数小于1即可。

public static void Diamond(){//变量numberint number = 12;//输出的字符串String str = "* ";//n - 这一行str的数量int n = 1;//m - 这一行开始空格的数量int m = number;//标志位 - 控制方向 true->递增 false->递减boolean flag = true;for(;n >= 1;){// 输出空格for (int i = 0; i < m; i++) {System.out.print(" ");}//输出字符for (int i = 0; i < n; i++) {System.out.print(str);}if(n == number/2){//调换方向flag = false;}if(flag){m--;n++;} else {//下一行str递减,空格要递增m++;n--;}//输出完一行就换行System.out.println();}}

上面图形是从菱形转换出一个新图形,从形状可以判断要输出的字符是“* ”,要打印的行数是11但是可以通过6次循环打印出这个图形;要打印的字符数跟行数一致也就是说逐行递减而空格是逐行递增但是到了第六行行数跟字符数是递增关系、和空格数是递减关系,所以在打印第六行要做一个转向变换的条件(n == 1)。终止的条件为输出的字符数大于行变量number即可。

public static void graph(){//变量numberint number = 6;//输出的字符串String str = "* ";//n - 这一行str的数量int n = number;//m - 这一行开始空格的数量int m = 0;//标志位 - 控制方向 true->递减 false->递增boolean flag = true;//循环输出每行的打印for(;n <= number;){//输出m个空格for(int i = 0; i < m; i++){System.out.print(" ");}//输出n个str字符串for(int i = 0; i < n; i++){System.out.print(str);}if(n == 1){//调换方向flag = false;}if(flag){//下一行str递减,空格要递增m++;n--;} else {m--;n++;}//输出完一行,换行System.out.println();}}

平行四边形

平行四边形打印打印8行可以直接循环即可,输出的字符可以一个一个输出也可以直接一次性输出,空格是递减

public static void Parallelogram(){//图形要输出的行数int number = 8;//图形要输出的字符串String str = "* ";//输出的空格int m = number;//每行要输出字符串的数量int n = number;for (;m >= 0;) {//输出空格for (int i = 0; i < m; i++) {System.out.print(" ");}//输出字符串for (int i = 0; i < n; i++) {System.out.print(str);}m--;System.out.println();}}

如果觉得《java 使用*打印图形(菱形 平行四边形 三角形)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。